此問題涉及socket.io版本< 0.9.x. 新版本有不同的傳輸和設置傳輸的方法。node.js和socket.io。 websocket的傳輸類型配置?
我在兩週內測試節點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)
甚至socket.emit(...)
時,服務器不能接收到客戶端發送的任何消息。
所以問題是:什麼不支持websocket在這裏?瀏覽器或node.js ...我很抱歉,我從谷歌搜索了很多頁面,但我還沒有找到答案。
我用node.js的0.8.16版本,socket.io版本0.9.13和最新的瀏覽器:Chrome瀏覽器,火狐,歌劇
我想使用的WebSocket不XHR輪詢。