Php ratchet websocket $conn->send($msg)!如何在客户端中获取此消息?



这里是我的代码(websocket php使用rachet和wamp服务器!

public function onClose(ConnectionInterface $conn) {
  $conn->send("Close client");
}

我将使用$conn->send()为所有客户端发送消息,但我不知道如何在客户端上使用autobahnJS获得此消息?

我找到了解决这个问题的方法!

1)启用autobahnJS的调试模式

ab.debug( true, true );

2)使用conn._websocket从服务器获取每个消息响应。

conn._websocket.onmessage = function (e){
    data = JSON.parse(e.data);
    console.log(data[1]);
    if(data.cat=='serverEvents'){
    switch(data.action) {
        case 'updateServerinfo':
              jQuery.updateServerinfo(data.actionData);
        break;
            }
        }
    };

谢谢。

autobahnJS有自己的方式来处理客户端向服务器发出的请求。您正在尝试从服务器向所有客户端发送请求("关闭所有客户端"请求)。要做到这一点,最好的方法是使用JS的setInterval()函数,让一个线程每X秒轮询服务器的事件。例如:

setInterval(checkForUpdate, 60 * 1000);

and

function checkForContentUpdate(timetableId) {
    var serviceUrl = 'http://yourscripttocheckhere';
    var xhr = $.ajax({url: serviceUrl, cache: false, success: function(content) {
      // Check server reply and act accordingly
    }});
}

使用AutobahnJS,您有两种与服务器端交互的方式:RPC和PubSub。如果你想从服务器向所有客户端发送消息,只需在所有客户端订阅某个主题X,然后从服务器向X发布消息。

披露:我是Autobahn的原作者,为Tavendo工作。

相关内容

  • 没有找到相关文章

最新更新