我正在创建包含一些实时功能的应用。我在前端使用runtimes
,Node.js
和SocketIO
+ Express
。我的后端处理React
和http
个请求。我使用带有代理选项的ws
将客户端的请求重定向到我的本地服务器。
前几天,虽然我既没有触及webpack配置也没有触及后端代码,但客户端的单个呼叫webpack-dev-server
导致向我的后端发送大量连接请求。
原因不是HMR,组件重新渲染或客户端的某些循环。我确信客户端只会调用io({ path: '/socket' })
一次。即使我将分支更改为某些旧分支(其中问题肯定不存在),重新安装所有io({ path: '/socket' })
后,问题仍然存在。所以这可能是一些网络/硬件相关甚至。我使用Windows 10,Node.js 6.
我的后端在控制台中生成的调试模式中的示例性日志:
这只是日志的一部分,通常它会保持连接速度非常快并且不会停止。
知道这里发生了什么吗?
答案 0 :(得分:2)
问题是即使websocket已经可用,socket.io
仍然使用长轮询。为了解决这个问题,我将transports: ['websocket']
传递给了这样的连接选项:
import io from 'socket.io-client';
io({ path: '/socket', transports: ['websocket'] });