首页 > 解决方案 > Socket.io 有时只发出事件

问题描述

我正在使用 React Native 通过 Node.js 连接到 Socket.io。据我所知,我使用 React Native 的事实或多或少无关紧要,除了这意味着我必须transports: ['websocket']在连接时进行设置。

在后端,当出现提示时,服务器从 API 获取数据,然后通过类似于以下代码的方式将该数据发送到房间:

async getData() {
    const data = await fetchData();
    io.of('/namespace').to('/room').emit('event', data);
}

问题是事件似乎只在大约 40% 左右的时间里发出。

我配置了 socket.io 来记录终端中的所有内容。当数据传输不起作用时,它看起来像这样:socket.io-parser encoding packet [the data],然后它说socket.io-parser encoded [the data]并且在那之后不记录任何内容。当它确实工作时,会记录这两件事,但之后也会记录socket.io:client writing packet [the data]。另一个注意事项是,服务器不必首先从 API 获取数据的所有通信似乎都工作正常。如果有人对如何解决这个问题有任何想法,或者我可以采取任何步骤来找到解决方案,我将不胜感激。

标签: node.jsreact-nativesocket.io

解决方案


推荐阅读