角度套接字失败,出现400个错误请求

问题描述:

其角色应用程序(角度1.X)尝试连接到节点应用程序。 这并不容易建立(primarly前端),所以我结束了与具有这种对前端(在bower.json):角度套接字失败,出现400个错误请求

"socket.io-client": "^0.7.10", 
"angular-socket-io": "^0.7.0" 

,这对后端(中的package.json):

"socket.io": "^1.7.3", 

因此,客户端的版本低于1.X,而服务器的版本大于1.X.

当我尝试连接,我得到

Bad request (HTTP 400) 

,而试图去

http://localhost/socket.io/1/ 

我只是进入了这个在我的SocketFactory在前端:

io.connect('http://localhost/', {'transports': ['websocket', 'polling']}); 

我猜问题是正面和背面的不同版本?他们必须完全相同,否则就足够了,都是0.X或1.X? 此外,是不是有解决方法?我很确定前端升级到1.X会导致其他问题(当我降级到小于1.X时会丢失)

当您尝试访问http://localhost/socket.io/1/时,您正在执行HTTP方法GET请求。它不同于通过套接字连接。 因此,当您在浏览器中打开http://localhost/socket.io/1/时,它返回错误的请求响应是很正常的。

+0

好吧,但它是如何试图做出GET请求?我在socketFactory中的调用是“io.connect('http:// localhost:5555 /',{'transports':['websocket','polling']});”。那有什么问题? – oderfla

+1

对不起,我以为你试图在浏览器中打开网址,因为你写了“试图去” –

+0

我想你需要看看https://socket.io/docs/rooms-and-命名空间/你没有提到你在服务器端创建了一个socket.io/1/命名空间。这就是为什么它只适用于http:// localhost/ –