workerman出現錯誤如下:
400 Bad RequestSec-WebSocket-Key not found.This is a WebSocket service and can not be accessed via HTTP.
錯誤原因
出現這個錯誤說明你用http協議去訪問了websocket協議的服務。推薦:workerman教程
開發者要注意,客戶端使用的應用層協議要與服務端的應用層協議相同,也就是服務端是什么協議,客戶端就使用什么協議。
如果協議不對應就會出現類似這種拒絕通訊甚至出錯的情況。
這個道理就像在瀏覽器地址欄里訪問數據庫的ip:3306端口一樣,你不會指望數據庫真的會給你返回什么有用的信息吧?
正確做法
正確的做法應該是建立一個websocket協議的鏈接,利用websocket協議與workerman的websocket協議服務通訊。 如果客戶端是瀏覽器,可以利用js建立websocket鏈接,代碼類似這樣:
//?假設服務端ip為127.0.0.1,端口為2346 ws?=?new?WebSocket("ws://127.0.0.1:2346"); ws.onopen?=?function()?{ ????alert("連接成功"); ????ws.send('tom'); ????alert("給服務端發送一個字符串:tom"); }; ws.onmessage?=?function(e)?{ ????alert("收到服務端的消息:"?+?e.data); };
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦