【发布时间】:2017-12-19 04:48:29
【问题描述】:
我正在创建包含一些实时功能的应用程序。我在前端使用Node.js、SocketIO 和Express + React。我的后端处理 http 和 ws 请求。我使用带有代理选项的webpack-dev-server 将客户端的请求重定向到我的本地服务器。
几天前,虽然我既没有接触过 webpack 配置也没有接触后端代码,但在客户端单次调用 io({ path: '/socket' }) 会导致向我的后端发送大量连接请求。
原因不是 HMR、组件的重新渲染或客户端的某些循环。我确信客户端只调用一次io({ path: '/socket' })。即使我将分支更改为一些旧分支(其中问题肯定不存在),在重新安装所有 node_modules 后,问题仍然存在。所以这甚至可能与一些网络/硬件相关。我使用的是 Windows 10、Node.js 6。
我的后端在控制台中生成的调试模式示例日志:
这只是日志的一部分,通常它会保持快速连接并且不会停止。
知道这里发生了什么吗?
【问题讨论】:
-
它无法退出轮询的一个常见原因是您的 socket.io 的客户端和服务器版本不匹配。这会在 socket.io 完成到 webSocket 的转换之前导致服务器断开连接。由于您没有显示任何代码,我们不知道您从哪里获取客户端 socket.io 代码,也不知道它是否与您在服务器上运行的版本完全相同。
-
谢谢,但我有相同的版本
标签: node.js windows websocket socket.io webpack-dev-server