棘轮客户端消息
问题描述:
我已经集成了使用棘轮的推杆。向所有用户广播工作正常。棘轮客户端消息
现在我试图找到一种方式,当我得到它的连接时,如何向特定用户发送消息。
方法,该方法是在执行订阅:
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( “你好”))。任何帮助?
答
您需要以某种方式存储连接,然后直接调用它们。
例如:
$conns[$conn->resourceId] = $conn;
再后来:
$conns[$resourceId]->write("new data");
至于为什么你没有收到关于订阅,请尝试write()方法,而不是发送消息()方法。
另外,检查控制台,看看你是否收到数据,但没有正确解包。
调用未定义的方法Ratchet \ Wamp \ WampConnection :: write() 我得到的消息,因为当我发送它没有json_encode时,我得到一个错误JSON.parse错误。但是,当我用json_encode发送它时,我什么也没得到 – LTRocky 2014-11-24 21:13:16
哦,我忘了Ratchet扩展了React连接。嗯,给我一点点,我会研究这一点。我对React非常熟悉,但不是Ratchet。 (仅供参考:棘轮建立在React上。) – JRL 2014-11-24 21:14:49