Rumah  >  Soal Jawab  >  teks badan

Sambungan WebSocket ke 'ws://localhost:4000/graphql' gagal:

<p>Saya kini mendapat ralat <em>Websocket Unable to Connect</em> pada kedua-dua bahagian klien dan pelayan (seperti yang ditunjukkan dalam imej di bawah). Saya tidak menggunakan sebarang konfigurasi Websocket lain selain daripada yang dinyatakan dalam klien apollo. Ini mengelirukan saya selama kira-kira dua hari. Sebarang bantuan amatlah dihargai. Jika anda perlu melihat sebarang kod lanjut sila beritahu saya. </p> <p>Saya mempunyai <strong>pelanggan aplikasi Vue</strong> disambungkan ke pelayan <strong>graphql apollo</strong>. Kod untuk konfigurasi apolloclient diberikan di bawah.</p> <p> <pre class="snippet-code-js lang-js prettyprint-override"><code>// pakej Apollo import { ApolloClient } daripada "apollo-boost-upload"; import { WebSocketLink } daripada "apollo-link-ws"; import { HttpLink } daripada "apollo-link-http"; import { InMemoryCache } daripada "apollo-cache-inmemory"; import { split } daripada "apollo-link"; import { getMainDefinition } daripada "apollo-utiliti"; import VueApollo daripada "vue-apollo"; Vue.use(VueApollo); wsLink = WebSocketLink baharu({ uri: "ws://localhost:4000/graphql", // gunakan wss untuk titik akhir yang selamat pilihan: { sambung semula: benar, }, }); pautan const = split( // berpecah berdasarkan jenis operasi ({ pertanyaan }) => { definisi const = getMainDefinition(query); kembali ( definition.kind === "OperationDefinition" && definition.operation === "langganan" ); }, wsLink, httpLink ); // Pelaksanaan cache export const defaultClient = ApolloClient baru({ // uri: "http://localhost:4000/graphql", pautan, cache: InMemoryCache baharu(), fetchOptions: { kelayakan: "termasuk", }, permintaan: (operasi) => { // jika tiada token dalam storan tempatan, tambahkannya jika (!localStorage.anaceptToken) { localStorage.setItem("anaceptToken", ""); } // operasi menambah token pada pengepala authorizatrion, yang dihantar ke hujung belakang operation.setContext({ tajuk: { kebenaran: "Pembawa " + localStorage.getItem("anaceptToken"), }, }); }, onError: ({ graphQLErrors, networkError }) => { if (networkError) { console.log("[networkError]", networkError); } jika (grafQLErrors) { for (const error of graphQLErrors) { console.dir(error); console.log(error); jika ( error.name === "AuthenticationError" || error.message === "jwt tamat tempoh" ) { // tetapkan ralat pengesahan dalam keadaan store.commit("setError", error); // pengguna log keluar untuk mengosongkan ralat store.dispatch("signUserOut"); } } } }, });</code></pre> </p> <p>vue 配置文件</p> <pre class="brush:php;toolbar:false;">const { defineConfig }= memerlukan("@vue/cli-service"); const NodePolyfillPlugin = memerlukan("node-polyfill-webpack-plugin"); module.exports = defineConfig({ Pilihan pemalam: { apollo: { enableMocks: benar, enableEngine: benar, }, }, transpileDependencies: ["vuetify"], chainWebpack: (config) => { config.performance.maxEntrypointSize(400000).maxAssetSize(400000); new NodePolyfillPlugin(); }, });</pre>
P粉344355715P粉344355715387 hari yang lalu573

membalas semua(1)saya akan balas

  • P粉914731066

    P粉9147310662023-08-30 17:40:40

    Cuba localhost 4004 yang menarik, pasti berkesan

    balas
    0
  • Batalbalas