WebSocket连接已建立,但无法接收消息

时间:2014-02-01 09:47:39

标签: javascript php websocket

昨天我在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);
    }
}

服务器代码有点长,但您可以找到here

谁能告诉我那里有什么问题?握手不正确吗?

客户端输出:

  

连接! (1)   发送给服务器的消息:0USERchannel

Server output

非常感谢帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

在客户端,请确保您的socket变量是全局的。