首頁 > php框架 > Workerman > 主體

workerman 403錯誤原因與解決方法

發布: 2019-12-05 10:52:31
原創
3271 人瀏覽過

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錯誤原因與解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板