Socket-io客户端不断发送连接请求

问题描述 投票:1回答:1

我正在创建包含一些实时功能的应用。我在前端使用Node.jsSocketIOExpress + React。我的后端处理httpws请求。我使用带代理选项的webpack-dev-server将客户端的请求重定向到我的本地服务器。

几天前,虽然我既没有触及webpack配置也没有触及后端代码,但客户端单个调用io({ path: '/socket' })会导致向我的后端发送大量连接请求。

原因不是HMR,组件重新渲染或客户端的某些循环。我确信客户端只调用一次io({ path: '/socket' })。即使我将分支更改为一些旧分支(其中问题肯定不存在),在重新安装所有node_modules之后,问题仍然存在。所以这可能是一些网络/硬件相关甚至。我使用Windows 10,Node.js 6。

我的后端在控制台中生成的调试模式中的示例日志:

enter image description here

这只是日志的一部分,通常它会保持连接非常快并且不会停止。

知道这里发生了什么吗?

node.js windows websocket socket.io webpack-dev-server
1个回答
2
投票

问题是socket.io继续使用长轮询,即使websocket已经可用。为了解决这个问题,我将transports: ['websocket']传递给了这样的连接选项:

import io from 'socket.io-client';
io({ path: '/socket', transports: ['websocket'] });
© www.soinside.com 2019 - 2024. All rights reserved.