WebSocket-Verbindung zu „ws://localhost:4000/graphql' ist fehlgeschlagen:
P粉344355715
P粉344355715 2023-08-29 23:58:21
0
1
570
<p>Ich erhalte jetzt sowohl auf der Client- als auch auf der Serverseite den Fehler <em>Websocket Unable to Connect</em> (wie im Bild unten gezeigt). Ich verwende keine andere Websocket-Konfiguration als die im Apollo-Client angegebene. Das verwirrte mich etwa zwei Tage lang. Jede Hilfe wäre sehr dankbar. Wenn Sie weiteren Code benötigen, lassen Sie es mich bitte wissen. </p> <p>Ich habe einen <strong>Vue-Anwendungsclient</strong>, der mit dem <strong>graphql Apollo-Server</strong> verbunden ist. Der Code für die Apolloclient-Konfiguration ist unten angegeben.</p> <p> <pre class="snippet-code-js lang-js Prettyprint-override"><code>// Apollo-Pakete import { ApolloClient } aus „apollo-boost-upload“; import { WebSocketLink } from „apollo-link-ws“; import { HttpLink } von „apollo-link-http“; import { InMemoryCache } aus „apollo-cache-inmemory“; import { split } from „apollo-link“; import { getMainDefinition } from „apollo-utilities“; VueApollo aus „vue-apollo“ importieren; Vue.use(VueApollo); wsLink = neuer WebSocketLink({ uri: „ws://localhost:4000/graphql“, // wss für einen sicheren Endpunkt verwenden Optionen: { erneut verbinden: wahr, }, }); const link = split( // Aufteilung basierend auf dem Operationstyp ({ query }) => { const definition = getMainDefinition(query); zurückkehren ( definition.kind === "OperationDefinition" && definition.operation === "Abonnement" ); }, wsLink, httpLink ); // Cache-Implementierung export const defaultClient = new ApolloClient({ // uri: „http://localhost:4000/graphql“, Verknüpfung, Cache: neues InMemoryCache(), fetchOptions: { Anmeldeinformationen: „include“, }, Anfrage: (Operation) => { // wenn kein Token im lokalen Speicher vorhanden ist, füge es hinzu if (!localStorage.anaceptToken) { localStorage.setItem("anaceptToken", ""); } // Operation fügt das Token zum Autorisierungsheader hinzu, der an das Backend gesendet wird operation.setContext({ Überschriften: { Autorisierung: „Bearer“ + localStorage.getItem(“anaceptToken“), }, }); }, onError: ({ graphQLErrors, networkError }) => { if (networkError) { console.log("[networkError]", networkError); } if (graphQLErrors) { for (const error of graphQLErrors) { console.dir(error); console.log(error); Wenn ( error.name === „AuthenticationError“ || error.message === „jwt abgelaufen“ ) { // Authentifizierungsfehler im Status festlegen store.commit("setError", Fehler); // Benutzer abmelden, um Fehler zu löschen store.dispatch("signUserOut"); } } } }, });</code></pre> </p> <p>vue 配置文件</p> <pre class="brush:php;toolbar:false;">const { defineConfig }= require("@vue/cli-service"); const NodePolyfillPlugin = require("node-polyfill-webpack-plugin"); module.exports = defineConfig({ PluginOptions: { Apollo: { enableMocks: wahr, enableEngine: true, }, }, transpileDependencies: ["vuetify"], chainWebpack: (config) => { config.performance.maxEntrypointSize(400000).maxAssetSize(400000); neues NodePolyfillPlugin(); }, });</pre>
P粉344355715
P粉344355715

Antworte allen(1)
P粉914731066

有趣的尝试 localhost 4004,它应该可以工作

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!