到目前为止,套接字正在按预期工作。在我的服务器上,我有:
const io = require('socket.io')(1923);
// after an action
io.sockets.emit('items', data);
然后在客户端:
const socket = io.connect('http://localhost:1923');
socket.on('items', (items) => {
// do stuff with items
});
现在,当我在自己的机器上时这很好用。只要不同的设备打开网站,它就会在我的计算机上的浏览器上更新。
计算机
移动
现在执行操作后,只有计算机上的网站才会更新,而不是我的新设备。检查连接时,它也只识别clientsCount: 2
。 (而不是3)
该网站在三个不同的浏览器上打开。我为此做错了什么?
(旁注:我已尝试使用第二台计算机,但并非特定于移动设备。)
答案 0 :(得分:0)
将我的评论写成答案,因为它似乎解决了你的问题......
此客户代码:
const socket = io.connect('http://localhost:1923');
除了在服务器所在的同一台计算机上以外的任何地方都不起作用。根据定义,localhost是本地计算机,只有本地计算机。您需要通过IP地址或DNS名称进行连接。
也许你想要这个:
const socket = io.connect('http://192.168.0.10:1923');