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

时间:2017-12-18 19:01:25

标签: node.js windows websocket socket.io webpack-dev-server

我正在创建包含一些实时功能的应用。我在前端使用runtimesNode.jsSocketIO + Express。我的后端处理Reacthttp个请求。我使用带有代理选项的ws将客户端的请求重定向到我的本地服务器。

前几天,虽然我既没有触及webpack配置也没有触及后端代码,但客户端的单个呼叫webpack-dev-server导致向我的后端发送大量连接请求。

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

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

enter image description here

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

知道这里发生了什么吗?

1 个答案:

答案 0 :(得分:2)

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

import io from 'socket.io-client';
io({ path: '/socket', transports: ['websocket'] });