【问题标题】:WebSocket connection established, but can't receive messagesWebSocket 连接已建立,但无法接收消息
【发布时间】:2014-02-01 09:47:38
【问题描述】:

我昨天用 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.

非常感谢您的帮助,谢谢。

【问题讨论】:

  • 你最后搞清楚了吗?同样的问题

标签: javascript php websocket


【解决方案1】:

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

【讨论】:

  • var 套接字;位于我脚本的顶部,我想这可以从任何地方访问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 2022-11-05
  • 2023-03-06
相关资源
最近更新 更多