国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

能否在一個端接受所有的房間的最新消息?

sMkb9l6r

問題描述

想實現(xiàn)一個監(jiān)控端接受所有房間的最新消息,workman能實現(xiàn)么

為此你搜索到了哪些方案及不適用的原因

想實現(xiàn)一個監(jiān)控端接受所有房間的最新消息,workman能實現(xiàn)么

1270 3 0
3個回答

liuyan814

用GatewayWorker開發(fā)會好一點

  • sMkb9l6r 2022-12-07

    實現(xiàn)思路提供一下,GatewayWorker不了解,謝謝

admin

請使用 GatewayWorker

  • sMkb9l6r 2022-12-07

    實現(xiàn)思路提供一下,GatewayWorker不了解,謝謝

  • liuyan814 2022-12-07

    你所說的房間,實際上就是分組的功能。本身GatewayWorker就有好幾個方法,比如:
    Gateway::bindUid($client_id, $data['uid']); //綁定UID
    Gateway::joinGroup($client_id, $data['group_id']); //加入群組
    Gateway::sendToGroup($data['group_id'], json_encode($ret) ); //發(fā)送到群組中所有客戶端
    那么實現(xiàn)的思路就是:
    1、在你的客戶端連接時,把用戶的ID發(fā)送然后綁定 并且加入群組。
    2、不管是哪個房間(群組)發(fā)送的消息,服務端都是可以接收的到的。
    3、那么根據(jù)群組不同可以區(qū)分不同的用戶,然后處理后把消息反饋給不同的群組。
    你多看看GatewayWorker手冊。

  • liuyan814 2022-12-07

    在HTML中:
    let ws = new WebSocket("ws://127.0.0.1:2084");

    ws.onopen = function() { //綁定連接事件
    console.log("連接成功");
    let uid = $("#uid").val();
    let car_id= $("#car_id").val();
    let group_id= $("#group_id").val();
    var data = {
    "action":"bind",
    "uid":uid,
    "car_id":car_id,
    "group_id":group_id
    };
    ws.send(JSON.stringify(data));
    };

    在服務端:
    switch($cmd) {

                case "bind":
    
                    Gateway::bindUid($client_id, $data['uid']); //綁定UID
                    Gateway::joinGroup($client_id, $data['group_id']); //加入群組
                    Gateway::sendToClient($client_id,json_encode(array('msg'=>'bind success')));
    
            //向群組發(fā)信息
                    //Gateway::sendToGroup($group_id, $data);
    
                    break;
  • liuyan814 2022-12-07

    這個群組的功能我也是最近才研究的,以上代碼僅供參考。

  • sMkb9l6r 2022-12-07

    目前項目中創(chuàng)建了很多房間, 房間之間是不通消息的, 運行很正常. 但增加了一個需求, 加一個監(jiān)控端 接受所有房間的新消息, 如果采用群組模式, 是否把所有房間都綁定一個群組, 然后可以在一個端接受消息, 但問題來了, 是不是所有的客戶端都能收到群組的消息, 這方式不合適了

  • liuyan814 2022-12-07

    只有一個服務端,服務端接受所有端的數(shù)據(jù),唯一的區(qū)別就是,你一個房間就是 一個群組, 你把用戶綁定到群組后,可以發(fā)信息給某個群組中的所有用戶,也可以群發(fā)所有的用戶。

  • liuyan814 2022-12-07

    不是所有房間都綁定一個群組,是一個房間一個群組。

  • sMkb9l6r 2022-12-07

    感謝你的回復, 那我這個監(jiān)控端的用戶可以同時綁定你說的n個群組嗎? 并可以就收到n個群組的新消息 ?

  • liuyan814 2022-12-07

    是的??梢越壎ǘ鄠€組。因為是綁定了UID,你的UID有多個組,那么如果單發(fā)信息的話,所有組下的都有能收到信息。
    這個是官方的說明:
    Gateway::sendToUid
    說明:
    void Gateway::sendToUid(mixed $uid, string $message);
    向uid綁定的所有在線client_id發(fā)送數(shù)據(jù)。

    注意:默認uid與client_id是一對多的關系,如果當前uid下綁定了多個client_id,則多個client_id對應的客戶端都會收到消息,這類似于PC QQ和手機QQ同時在線接收消息。

  • sMkb9l6r 2022-12-07

    我的場景和這個是相反的, 即多個 client_id 向 uid發(fā)送消息, 不知能否實現(xiàn)

  • sMkb9l6r 2022-12-07

    n個群組的client_id發(fā)送新消息, 有個特定的用戶能收到這些新消息, 這樣子的需求

  • liuyan814 2022-12-07

    那也不影響呀。你客戶端在發(fā)信信息的時候,傳送的參數(shù)包含,本用戶ID,要發(fā)送到的UID,那服務端那邊處理就行了。

  • liuyan814 2022-12-07

    “n個群組的client_id發(fā)送新消息, 有個特定的用戶能收到這些新消息, 這樣子的需求”。不管誰發(fā),取決于服務端,看你服務端怎么處理了。 可以實現(xiàn) 的。

  • sMkb9l6r 2022-12-08

    好吧,謝謝

powerbowen

GatewayWorker

http://m.wtbis.cn/doc/gateway-worker/lib-gateway-functions.html

Lib\Gateway下的接口看一下

年代過于久遠,無法發(fā)表回答
??