棘轮客户端消息

时间:2014-11-24 21:06:08

标签: javascript php websocket ratchet

我已经使用Ratchet集成了推杆。向所有用户广播工作正常。

现在我正试图找到一种方法,当我得到它的连接时,如何向特定用户发送消息。

在订阅上执行的方法:

public function onSubscribe(ConnectionInterface $conn, $topic) {
    $conn->send(json_encode("Hello"));
}

客户端的JS:

var conn = new ab.Session('ws://127.0.0.1:8080',
                function() {
                    conn.subscribe('chat', function(topic, data) {
                        console.log(data); // here I'd like to get that "Hello" message
                    });
                },
                function() {
                    console.warn('WebSocket connection closed');
                },
                {'skipSubprotocolCheck': true}
        );

我没有收到任何消息,我想我还没有正确格式化它(json_encode(" Hello"))。有帮助吗?

1 个答案:

答案 0 :(得分:0)

您需要以某种方式存储连接,然后直接调用它们。

例如:

$conns[$conn->resourceId] = $conn;

然后是:

$conns[$resourceId]->write("new data");

至于为什么你没有在订阅时收到消息,请尝试使用write()方法而不是send()方法。

另外,请检查控制台,看看您是否正在接收数据,但未正确解压缩。