javascript - Ratchet 客户端消息

标签 javascript php websocket ratchet

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

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

在 subscribe 上执行的方法:

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"))。有什么帮助吗?

最佳答案

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

例如:

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

然后后来:
$conns[$resourceId]->write("new data");

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

此外,请检查控制台以查看您是否正在接收数据但未正确解包。

关于javascript - Ratchet 客户端消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27114163/

相关文章:

PHP mysqli_connect : authentication method unknown to the client [caching_sha2_password]

php - 如何防止php超时、运行循环?不操纵 max_execution_time?

javascript - 使用 Python Flask_socketio react socket.io-client 不处理事件

javascript - websocket 上出现以下错误意味着什么以及如何修复它

javascript - 如何添加一个计数器来显示找到了多少文本匹配项

javascript - jquery prop() 立即(重点?)

javascript - 正则表达式用拉丁语中的重音字符拆分单词

php - 如何从 PHP 轻松使用 Web 服务

nginx - Elastic Beanstalk 上的 WebSockets 与 Docker

javascript - 如何每 30 秒加载页面的一部分