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

業(yè)務(wù)系統(tǒng)與聊天系統(tǒng)流程設(shè)計,這樣架構(gòu)合理嗎?

悉地網(wǎng)

912 4 3
4個回答

six

token設(shè)定一個驗證算法,GatewayWorker自己驗證就行,用不著再請求一遍tp

  • 悉地網(wǎng) 2024-04-10

    我的token是保存在業(yè)務(wù)數(shù)據(jù)庫中,并且有時效的

  • 悉地網(wǎng) 2024-04-10

    你說用JWT?

  • six 2024-04-10

    jwt也行

  • 悉地網(wǎng) 2024-04-10

    如果是一些復(fù)雜的鑒權(quán)邏輯呢?

  • six 2024-04-10

    復(fù)雜的不走數(shù)據(jù)庫都可以直接GatewayWorker里做吧

  • 悉地網(wǎng) 2024-04-10

    有一些場景需要業(yè)務(wù)系統(tǒng)進行鑒權(quán)比較合適,比如用戶付費聊天?如果鑒權(quán)邏輯放在聊天系統(tǒng),聊天系統(tǒng)會不會有點臃腫?。?/p>

  • 悉地網(wǎng) 2024-04-10

    后續(xù)別的系統(tǒng)連接聊天系統(tǒng)不好管理把?

  • six 2024-04-10

    業(yè)務(wù)都走tp啊,GatewayWorker只做發(fā)送消息

  • 悉地網(wǎng) 2024-04-10

    每次收發(fā)聊天消息都要經(jīng)過web嗎?還是直連聊天系統(tǒng)?

  • six 2024-04-10

    業(yè)務(wù)都走web,gatewayWorker只做消息發(fā)送

  • 悉地網(wǎng) 2024-04-10

    不做客戶端消息接收?

  • 悉地網(wǎng) 2024-04-10

    好像理解你的意思了,跟文檔思想一樣

weijer

結(jié)合webman pusher服務(wù)就行了,消息處理端不需要跟數(shù)據(jù)庫產(chǎn)生任何連接,僅作數(shù)據(jù)推送

  • 悉地網(wǎng) 2024-04-10

    我沒有使用webman,業(yè)務(wù)系統(tǒng)用的是tp框架

  • 悉地網(wǎng) 2024-04-10

    聊天系統(tǒng)只負責消息收發(fā)?不干其他事

efnic

我的設(shè)計是:uniapp連接GatewayWorker時,GatewayWorker返回驗證信息【auth、client_id、timestamp】,設(shè)置未綁定超時關(guān)閉;
uniapp請求頭攜帶token,數(shù)據(jù)報文為上一步的驗證信息,請求thinkPHP業(yè)務(wù)系統(tǒng);

thinkPHP業(yè)務(wù)系統(tǒng),在鑒權(quán)成功后,通過GatewayClient綁定用戶id、加入分組、關(guān)閉連接等等操作。

efnic
/**
     * 將client_id與uid綁定
     * @param string $client_id
     * @param string $uid
     * @param string $auth
     * @return void
     * @throws Exception
     */
    public static function bindUid(string $client_id, string $uid, string $auth): bool
    {
        if (empty($auth) || strlen($auth) < 32) {
            throw new Exception('auth驗證參數(shù)為空');
        }

        $session = Gateway::getSession($client_id);
        $_auth = $session['auth'] ?? $session['uniqid'] ?? '';
        if (empty($_auth)) {
            throw new Exception('session驗證參數(shù)為空');
        }

        if (hash_equals($auth, $_auth)) {
            Gateway::bindUid($client_id, $uid);
            return true;
        }

        return false;
    }
  • efnic 2024-04-11

    業(yè)務(wù)系統(tǒng),鑒權(quán)通過后綁定uid時,一定要驗證接口收到的auth和GatewayWorker系統(tǒng)內(nèi)Session是否相同。

  • 悉地網(wǎng) 2024-04-11

    你的消息收發(fā)是直連嗎?

  • efnic 2024-04-11

    這個看你需求,反正是GatewayWorker絕不做鑒權(quán)的操作。

  • 悉地網(wǎng) 2024-04-11

    鑒權(quán),綁定uid,消息存儲等,都在業(yè)務(wù)系統(tǒng)中實現(xiàn)

  • 悉地網(wǎng) 2024-04-11

    GatewayWorker僅做消息收發(fā)功能

  • wocall 2024-04-11

    學習了??

  • 悉地網(wǎng) 2024-04-11

    一起學習把

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