我已经使用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"))。有帮助吗?
答案 0 :(得分:0)
您需要以某种方式存储连接,然后直接调用它们。
例如:
$conns[$conn->resourceId] = $conn;
然后是:
$conns[$resourceId]->write("new data");
至于为什么你没有在订阅时收到消息,请尝试使用write()方法而不是send()方法。
另外,请检查控制台,看看您是否正在接收数据,但未正确解压缩。