簡體   English   中英

Javascript 套接字(失敗:WebSocket 握手期間出錯:net::ERR_CONNECTION_RESET)

[英]Javascript Sockets (failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET)

我正在嘗試創建一個簡單的程序,以純文本形式向套接字發送消息。 發件人是使用 websocket 的 javascript 網頁,服務器是 C 程序。 我對 C 代碼沒有任何控制權,但代碼所有者向我保證,我可以使用簡單的 javascript 來發送消息。 我的代碼如下:

<!DOCTYPE HTML>
<html>
    <head>
        <script type="text/javascript">
            //initialize the websocket ws
            var ws; 
            //Open the socket connection
            function openSock() {
                //test for Websocket compatibility in the browser
                if ("WebSocket" in window) { 
                    // log socket attempt
                    console.log("Attempting to open socket!");
                    //open web socket ws
                    ws = new WebSocket("ws://192.168.6.222:11000/echo");
                } else { // else the browser doesn't support WebSocket
                    //Websocket is not supported
                    alert("APS NOT supported by your Browser!");
                }
            }
            //send the command to socket ws
            function sendCommand() { 
                console.log("Attempting to Send Message");
                ws.send("your message here");
            }
            //close the socket ws
            function closeSock() {
                console.log("Closing Socket");
                // close socket ws
                ws.close();
            }

        </script>
    </head>
    <body>
        <div id="sse">
            <a href="javascript:openSock()"><input type=submit value="open"></a>
            <a href="javascript:sendCommand()"><input type=submit value="send"></a>
            <a href="javascript:closeSock()"><input type=submit value="close"></a>
        </div>
    </body>
</html>

當我單擊連接按鈕時,出現此錯誤:

WebSocket 連接到“ws://192.168.6.222:11000/echo”失敗:WebSocket 握手期間出錯:net::ERR_CONNECTION_RESET

我檢查了防火牆,端口似乎是打開的。 在花費了大量時間對服務器進行故障排除(確保它正在運行並在網絡上等)之后,我想知道我是否對這個客戶端代碼做錯了什么。

從我有限的知識和我所做的閱讀來看,這看起來是正確的,但歡迎任何幫助。

這可能太晚了,但我在使用 Django 頻道時遇到了類似的問題。 我通過在 URL 末尾添加斜杠 ( / ) 來修復它。

ws = new WebSocket("ws://192.168.6.222:11000/echo/");

連接的服務器端是什么樣子的? 也許您使用的是錯誤的 WebSocket Lib,它不提供有效的握手。

因為在針對 ws://echo.websocket.org 測試客戶端時,一切似乎都運行良好。 這強烈表明 websocket 客戶端不是問題的根源。

確保您的隊列運行正常,就我而言,這就是問題所在

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM