javascript - React.js/socket.io 瓶颈问题
问题描述
我是 react.js 的新手,并开始将旧的纯 HTML/CSS/JS 前端应用程序迁移到 react.js,该应用程序包括以低延迟接收广播,我使用 create-react-app 创建我的项目,现在我在 react.js 方面遇到了一个奇怪的瓶颈问题。
我在应用程序上创建了一个模块来处理 socket.io 广播,但是当我运行应用程序时,接收广播时出现奇怪的高延迟。
起初,我认为问题是因为渲染需要很多时间来同步处理我的请求,因为我使用了钩子,useEffect
所以我只是导入了模块并定义了广播事件而不渲染任何东西,但延迟没有改善。
然后我创建了一个简单的客户端并独立运行,延迟很好:
const io = require('socket.io-client');
//import io from 'socket.io-client';
socket = io.connect('------------------')
socket.on('connect', () =>{
console.log("i'm connected to the server")
})
socket.on('broadcast_timer', data => {
console.log(data)
})
这是基本上在 react.js、旧 vanilla 和创建的简单客户端上的代码。
我不知道这是否与 webpack 或热重载有关(我从应用程序构建并运行它但问题仍然存在),是否有人遇到过这样的处理套接字的问题?
解决方案
好吧,尝试一切,比如使用新的 create-react-app 和构建一个手动配置 webpack 和 babel 的反应项目,我放弃了使用 socket.io,这可能是我在 react.js 上存在延迟差异的错误,因为我没有'没有在其他地方使用它并将服务器更改为使用 SSE(服务器端事件)流式传输,效果非常好,客户端只需要订阅计时器并且没有额外的依赖项。
推荐阅读
- bash - 在循环bash中从更大的目录复制文件
- session - Flask – 同名的多个会话 cookie
- python - 游戏对象没有属性“名称”错误
- apache-flink - IllegalArgumentException:在 Apache Flink 中上传时 UploadDirectory 不是绝对的
- docker - SaaS 的动态 ssl
- python - 自动重启 python 和新的 tkinter 窗口
- zooming - openlayers - wms layer maxzoom 16,需要放大更多(以编程方式)
- python - 重新初始化后,多处理管理器的列表不保存值
- machine-learning - 验证损失减少,然后增加,然后再次减少
- javascript - Node.JS - For Loop 结合 .split() 函数不使用 console.log() 新变量