Javascript 使用Socket.io的Node.js应用程序给出;意外响应代码:400“;关于OpenShift托管

Javascript 使用Socket.io的Node.js应用程序给出;意外响应代码:400“;关于OpenShift托管,javascript,node.js,websocket,socket.io,openshift,Javascript,Node.js,Websocket,Socket.io,Openshift,我有一个Node.js应用程序在本地运行良好,但当我将其推到OpenShift时,它在开发人员控制台中给了我以下错误: 到“ws://myapp mydomain.rhcloud.com/socket.io/?EIO=3&transport=WebSocket&sid=mpKjro8KjQ5dIg0GAAAE”的WebSocket连接失败:WebSocket握手期间出错:意外响应代码:400 这是一个小型多人“游戏”,您和任何其他连接的玩家都是立方体,可以四处移动,可以看到彼此的移动等。我使用N

我有一个Node.js应用程序在本地运行良好,但当我将其推到OpenShift时,它在开发人员控制台中给了我以下错误:

到“ws://myapp mydomain.rhcloud.com/socket.io/?EIO=3&transport=WebSocket&sid=mpKjro8KjQ5dIg0GAAAE”的WebSocket连接失败:WebSocket握手期间出错:意外响应代码:400

这是一个小型多人“游戏”,您和任何其他连接的玩家都是立方体,可以四处移动,可以看到彼此的移动等。我使用Node和socket.io获取玩家位置,并将新坐标发送给其他玩家,但当我在OpenShift上托管时,会出现上述错误。 奇怪的是,它几乎可以工作,也就是说,你可以看到其他玩家四处走动,除了它非常缓慢。 同样的应用程序在Scalingo主机上运行得很好,所以它一定是OpenShift的东西

这是我启动socket.io的客户端代码:


var socket=io();

谢谢各位观众,更改这一行就成功了:

var socket=io()//古老的

var socket=new io(“ws://myapp-mydomain.rhcloud.com:8000/”//新的
replicate,也许:(你的应用程序仍然可以运行,但很糟糕,因为socket.io使用的是XHR长轮询,而XHR长轮询的性能远远低于WebSockets)谢谢你,我让它工作了。性能仍然有待提高,在一个玩家移动和其他玩家看到之间有相当明显的延迟(~90毫秒)。