2017-04-05 62 views
0

其角色應用程序(角度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時會丟失)

回答

0

當您嘗試訪問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/ –

相關問題