这个问题涉及 < 0.9.x 的 socket.io 版本。较新的版本具有不同的传输和设置传输的方法。
我在两周内测试了 node js 和 socket.io。当我开始时,我从socket.send(message)
客户端的功能中得到了问题。我无法向服务器发送任何消息。但我仍然可以接收来自服务器的消息。当我找到服务器端的配置传输时,我解决了这个问题:
socket.set('transports',[
'xhr-polling'
, 'jsonp-polling'
]);
一切安好。现在我也可以向服务器发送消息了。但是我仍然有一个问题,为什么我必须配置传输。默认 socket.io 使用 websocket 传输设置,如下所示:
socket.set('transports', [
'websocket'
, 'flashsocket'
, 'htmlfile'
, 'xhr-polling'
, 'jsonp-polling'
]);
所以它首先使用 websocket,而不是 xhr-polling。socket.send(msg)
但是使用even时,服务器无法接收到客户端发送的任何消息socket.emit(...)
。
所以问题是:这里不支持 websocket 的是什么?浏览器或node.js ...我很抱歉,但我从谷歌搜索了很多页面,但我还没有找到答案。
我使用 node.js 0.8.16 版、socket.io 0.9.13 版和最新的浏览器:chrome、firefox、opera
我想使用 websocket 而不是 xhr-polling。