這篇文章給大家分享的是有關workerman出現403錯誤怎么辦的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
workerman出現錯誤如下:
400 Bad Request
Sec-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); };
感謝各位的閱讀!關于“workerman出現403錯誤怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。