角度套接字失败,出现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/时,它返回错误的请求响应是很正常的。
好吧,但它是如何试图做出GET请求?我在socketFactory中的调用是“io.connect('http:// localhost:5555 /',{'transports':['websocket','polling']});”。那有什么问题? – oderfla
对不起,我以为你试图在浏览器中打开网址,因为你写了“试图去” –
我想你需要看看https://socket.io/docs/rooms-and-命名空间/你没有提到你在服务器端创建了一个socket.io/1/命名空间。这就是为什么它只适用于http:// localhost/ –