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

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

sMkb9l6r

問題描述

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

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

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

1266 3 0
3個(gè)回答

liuyan814

用GatewayWorker開發(fā)會(huì)好一點(diǎn)

  • sMkb9l6r 2022-12-07

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

admin

請(qǐng)使用 GatewayWorker

  • sMkb9l6r 2022-12-07

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

  • liuyan814 2022-12-07

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

  • 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));
    };

    在服務(wù)端:
    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

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

  • sMkb9l6r 2022-12-07

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

  • liuyan814 2022-12-07

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

  • liuyan814 2022-12-07

    不是所有房間都綁定一個(gè)群組,是一個(gè)房間一個(gè)群組。

  • sMkb9l6r 2022-12-07

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

  • liuyan814 2022-12-07

    是的。可以綁定多個(gè)組。因?yàn)槭墙壎薝ID,你的UID有多個(gè)組,那么如果單發(fā)信息的話,所有組下的都有能收到信息。
    這個(gè)是官方的說明:
    Gateway::sendToUid
    說明:
    void Gateway::sendToUid(mixed $uid, string $message);
    向uid綁定的所有在線client_id發(fā)送數(shù)據(jù)。

    注意:默認(rèn)uid與client_id是一對(duì)多的關(guān)系,如果當(dāng)前uid下綁定了多個(gè)client_id,則多個(gè)client_id對(duì)應(yīng)的客戶端都會(huì)收到消息,這類似于PC QQ和手機(jī)QQ同時(shí)在線接收消息。

  • sMkb9l6r 2022-12-07

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

  • sMkb9l6r 2022-12-07

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

  • liuyan814 2022-12-07

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

  • liuyan814 2022-12-07

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

  • sMkb9l6r 2022-12-08

    好吧,謝謝

powerbowen

GatewayWorker

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

Lib\Gateway下的接口看一下

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