簡體   English   中英

WebSocket連接已建立,但無法接收消息

[英]WebSocket connection established, but can't receive messages

我昨天用PHP編寫了一個簡短的WebSocket示例服務器。 當客戶端連接到服務器時,服務器讀取客戶端握手,並使用適當的密鑰將服務器握手發送回去。 客戶端的onopen()被觸發,服務器和客戶端似乎已連接。

我的問題是:服務器無法接收客戶端消息,客戶端無法接收服務器消息。 onmessage()不會被觸發一次,並且socket_select()永遠不會退回在服務器端發送消息的客戶端。

function connect() {
    try {
        var webSocketURL = "ws://" + serverAddress + ":" + serverPort;
        socket = new WebSocket(webSocketURL);

        socket.onopen = function() {
            log("Connected! (" + this.readyState + ")");
        }

        socket.onclose = function() {
            log("Closed! (" + this.readyState + ")");
            socket.close();
        }

        socket.onerror = function(error) {
            log("Error: " + error.data);
            socket.close();
        }

        socket.onmessage = function(message) {
            log("Message from server: " + message.data);
        }
    }

    catch (e) {
        alert("Error: " + e);
    }
}

服務器代碼稍長,但是您可以在此處找到它。

誰能告訴我那里怎么了? 握手不正確嗎?

客戶輸出:

連接的! (1)發送到服務器的消息:0USERchannel

服務器輸出

非常感謝您的幫助,謝謝。

在客戶端,確保socket變量是全局的。

暫無
暫無

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

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