我正在测试依赖于Node.js 0.12.0和socket.io 0.9.6的应用程序的客户端/服务器连接。
在客户端一个简单的:
window.onfocus = function () {
socket.emit('active');
};
并在服务器端:
client.on('active', function (){
console.log('active');
});
我在本地测试此应用时没问题。
当我在线测试时,socket.emit();
会随机无法在同一台计算机和浏览器上工作,即当我重新加载页面时,我会看到"活动"在我的日志中,然后我重新加载并看不到任何东西,重新加载/没有,重新加载/没有,重新加载/"活动"等...
知道为什么会在同一台计算机和同一浏览器上发生这种情况吗?
答案 0 :(得分:0)
我的问题是我在我的计算机上安装了Avast,我正在强制进行websocket通信,并且Avast阻止了websockets(尝试禁用Avast并查看它是否解决了您的问题)。
五年多前已向Avast报告过此问题,但显然没有任何变化:https://forum.avast.com/index.php?topic=68270.0
最适合我的解决方案:
其他可能的解决方案:
使用xhr-polling代替websocket:
io.set(' transports',[' xhr-polling']);
但对于我的应用程序xhr-polling太慢了
请注意,在socket.io的最后一个版本中,默认情况下启用xhr-polling,因此很少发生此错误。
相关的Stackoverflow帖子:
Socket.io 0.7.9 connection issues
Socket IO WebSocket requests blocked by corporate firewalls.