我正在使用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应用程序上具有匹配的节点版本。 –