首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP棘轮网络套接字$conn->发送($msg)!客户怎么处理这件事?

PHP棘轮网络套接字$conn->发送($msg)!客户怎么处理这件事?
EN

Stack Overflow用户
提问于 2013-05-21 13:49:44
回答 2查看 1.4K关注 0票数 0

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

代码语言:javascript
复制
public function onClose(ConnectionInterface $conn) {
  $conn->send("Close client");
}

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

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

1)在autobahnJS中启用调试模式

代码语言:javascript
复制
ab.debug( true, true );

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

代码语言:javascript
复制
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;
            }
        }
    };

谢谢大家。

EN

回答 2

Stack Overflow用户

发布于 2013-05-21 14:06:39

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

setInterval(checkForUpdate,60×1000);

在checkForUpdate()中:

代码语言:javascript
复制
function checkForContentUpdate(timetableId) {
    var serviceUrl = 'http://yourscripttocheckhere';

    var xhr = $.ajax({url: serviceUrl, cache: false, success: function(content) {
      // Check server reply and act accordingly
    }});
}
票数 0
EN

Stack Overflow用户

发布于 2013-05-21 21:05:55

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16671738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档