gpt4 book ai didi

javascript - Websockets 在 React JS + Electron NodeJS 应用程序中多次连接

转载 作者:行者123 更新时间:2023-12-03 12:32:15 25 4
gpt4 key购买 nike

我有一个用 Electron JS 构建的应用程序,它使用 React 和 websockets。
我正在使用以下代码在渲染器线程中调用服务器:

const host = 'http://localhost:3000';

const socket = io(host);
const apiClient = new APIClient(socket);
apiClient.someMethod(...);
此代码不在 React JS 组件中。它在 index.tsx 上,它只被调用一次。如果我在该代码中放置一个 console.log,它只会打印一次。
在服务器中,我有一个类似于此的代码:
    io.on("connection", socket => {
// getting sesionUserId

console.log("Client connected. User id: ", sessionUserId);
该代码似乎不起作用,并且在服务器中我得到了这个日志:
Client connected. User id:  5
Client connected. User id: 5
Client connected. User id: 5
Client connected. User id: 5
Client connected. User id: 5
... etc
似乎发生的是 websockets 一直在连接。为什么会这样?我对 Electron 没有太多经验。看起来客户端可以与服务器连接,但由于某种原因它会重试连接。此外,当我尝试与服务器交谈时,我没有得到答案(我猜这是因为它一直在重新连接)。
Electron JS 是否有任何限制,它会阻止 websockets 正常工作?

最佳答案

您是否在客户端和服务器上使用不同版本的 socketIO,请尝试使它们具有相同的主要版本。当我有不同的版本时,这发生在我身上,我在客户端有 2.X.X 版本,在服务器上有 3.X.X 版本。所以我为服务器和客户端制作了 2.X.X 的 socketIO 版本,一切都开始正常工作。
即我在客户端的版本 2.X.X 的客户端使用了“socket-io-client”模块
我在版本 2.X.X 的服务器上使用了“socket-io”模块,并且不再形成多个 websocket 连接。

关于javascript - Websockets 在 React JS + Electron NodeJS 应用程序中多次连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65768203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com