dear all~
正在使用 socket.io 開發
server 是 express+socket.io on node.js
client angular 5
本來連線是都沒問題的
但後來為了使用 redis-client 需要用 async
發現自己的 node.js 只有 6.x 便升級 到 8.9.4 測試中 又升到 9.4.0
也對所有的 package 做了 update
(列出主要的)
express 4.15.2 -> 4.16.2
socket.io 2.0.3 -> 2.0.4
第一個遇到的問題是 invalid frame head, 而且會看到 chrome console 印不停
測試下發現 原本寫的 { transports: [‘websocket’] } 拿掉 就不會了
但就一直卡在 failed: Error during WebSocket handshake: Unexpected response code: 400
我查不太到 400 實際的定義( 應該就是單純指 Error during WebSocket handshake ),
或著說 一定造成它的原因
為釐清問題 我照著 socket.io 的 demo 另外開了一個 socket server
發現我的 client 連得上
而只要連我原本的 socket server 就會遇到 400
(client, 兩個 server 都在我 local)
因這樣的測試
認為 client 應該沒有問題
差別主要就在 server 上了
但是… 在交握就斷線了
在初始的寫法 其實都是一樣的 看不出差異
也懷疑是 redis-clinet 的問題 但拔掉 也是一樣
爬文中 發現這問題 從很久以前 到現在 都還有人問
但是 版本不用說 大家的環境 條件也都不一樣 很多都是在 ngix 上 或說裝了 ssl 什麼的
希望大家給點意見了
謝謝