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

GatewayWorker與MVC(laravel)框架,group內的人員在線情況如何實時更新?

wlfpanda1012

問題描述

我是通過mvc的業(yè)務系統(tǒng)通過gatewayclient進行數(shù)據下發(fā)的,所以所有來自web前端的請求都是通過短鏈接形式上報,再下發(fā)。
那當群(group)里有人掉線或者下線(沒有通過接口,即 沒有通過 leaveGroup)的方式來離開。那我就無法給群組下發(fā) xxx 離開群聊 的信息。

另外同樣的,我給某個人發(fā)信息的時候,我可以在業(yè)務接口里先判斷此人是否在線
下面是偽代碼

    public function say(int $uid, string $message)
    {
        if (GatewayClient::isUidOnline($uid)){
            // 發(fā)送消息
            GatewayClient::sendToUid($uid, $message);
        }else{
            // 存儲離線消息
            Redis::lpush('wss:user.' . $uid . ':offline.message', $message);
        }
    }

但這個依舊有問題,我為什么在發(fā)信息之前無法判斷這人是否在線。

為此我考慮了幾種解決方案

然后我考慮解決方案
前端:
定時任務 處于激活頁面的聊天窗口中的聊天對象. 定時去刷新是否在線。
然后群組的話,只有激活群的聊天框時,才去定時輪詢在線人數(shù)以及在線人的基本信息。

希望有更好的解決方案

上面是我考慮的,不知道有沒有更加成熟具體的解決方案。希望各路大神能夠解答一下。

669 1 0
1個回答

不敗少龍

心跳去判斷了

  • wlfpanda1012 2024-03-01

    是A要知道B有沒有掉線,心跳是能讓ws服務器知道B有沒有掉線。下發(fā)信息都通過(mvc服務器)gatewayclient中轉下發(fā)。就。。。概念上不太一樣可能。

  • 不敗少龍 2024-03-01

    Gateway::isOnline 用這個去判斷用戶是否在線

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