棘轮客户端消息

问题描述:

我已经集成了使用棘轮的推杆。向所有用户广播工作正常。棘轮客户端消息

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

方法,该方法是在执行订阅:

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()方法,而不是发送消息()方法。

另外,检查控制台,看看你是否收到数据,但没有正确解包。

+0

调用未定义的方法Ratchet \ Wamp \ WampConnection :: write() 我得到的消息,因为当我发送它没有json_encode时,我得到一个错误JSON.parse错误。但是,当我用json_encode发送它时,我什么也没得到 – LTRocky 2014-11-24 21:13:16

+0

哦,我忘了Ratchet扩展了React连接。嗯,给我一点点,我会研究这一点。我对React非常熟悉,但不是Ratchet。 (仅供参考:棘轮建立在React上。) – JRL 2014-11-24 21:14:49