我正在使用NodeJS和socket.IO進行多人國際象棋遊戲。Socket.io + Azure網絡套接字問題
我有問題,它託管在Azure上壽..我嘗試了許多不同的方法,有幾個提到:
io.configure(function() {
io.set('transports', ['websocket']);
});
新增<webSocket enabled="false"/>
:
通過添加以下代碼強制應用程序只使用WebSockets在web.config
文件..
注意:這將禁用IIS的WebSockets模塊,其中包括:是它自己的WebSocket實現,並與Node.js特定的WebSocket模塊(如Socket.IO)衝突。如果此行不存在或設置爲true,則這可能是WebSocket傳輸不適用於您的應用程序的原因。
匹配原始協議以確保沒有SSL問題。
io.configure(function() {
io.set('match origin protocol', true);
});
我現在從頭開始,因爲我認爲我的服務器端部分已損壞,並試圖Socket.io chat example代替。
- 我按照步驟操作。
- 在Azure上創建了一個新的Web應用程序。
- 通過FileZilla FTP發佈我的文件。
- 在Azure上爲我的應用啓用Web套接字(默認情況下禁用)。
仍是同樣的錯誤!見下圖。
有人嗎?我不確定這是客戶端問題還是服務器端問題。它似乎是試圖XHR輪詢,而不是使用網絡套接字..
在此先感謝。
這是Azure Web Apps嗎?另外,只是爲了確認,這在當地適用?我有一個使用Node和Socket.io的快速部署按鈕。那裏有東西可能會有所幫助。 https://github.com/christopheranderson/node-chat-sample –
Azure Web應用程序,是的。這適用於本地(聊天示例和我的國際象棋遊戲),忘了補充說明。感謝您的示例我會檢查出來。 – urbz
我沒有看到任何明顯的你做錯了,這意味着它可能是一個微妙的事情。嘗試我的示例,看看你是否看到類似的問題。由於您大概上傳node_modules而不是使用配置項(本機模塊對節點版本4.x.x及更高版本存在本地模塊支持),因此請確保本地和您的Web應用程序上具有匹配的節點版本。 –