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

群發(fā)消息客戶端能收到消息,但是websocket連接成功時(shí)無(wú)法接收到client_id

gongjianjun

問(wèn)題描述

項(xiàng)目和gatewayworker服務(wù)是獨(dú)立部署的,在同一個(gè)服務(wù)器上,GatewayWorker不接受客戶端發(fā)來(lái)的數(shù)據(jù),即GatewayWorker不處理任何業(yè)務(wù)邏輯,GatewayWorker僅僅當(dāng)做一個(gè)單向的推送通道。
僅當(dāng)項(xiàng)目需要向?yàn)g覽器主動(dòng)推送數(shù)據(jù)時(shí)才在項(xiàng)目中調(diào)用Gateway的API GatewayClient完成推送。
問(wèn)題:
客戶端websocket連接成功了,服務(wù)端執(zhí)行接口Gateway::sendToAll,客戶端也能接收到消息,但是連接成功時(shí),接收不到client_id,日志里Events.php中的onConnect方法沒(méi)有執(zhí)行

程序代碼

<script type="text/javascript">
/**
 * 與GatewayWorker建立websocket連接,域名和端口改為你實(shí)際的域名端口,
 * 其中端口為Gateway端口,即start_gateway.php指定的端口。
 * start_gateway.php 中需要指定websocket協(xié)議,像這樣
 * $gateway = new Gateway(websocket://0.0.0.0:7272);
 */
ws = new WebSocket("wss://websocket.baoxiaoban.com/wss");
 ws.onopen = function(event) {
     alert("連接成功");
    };

// 服務(wù)端主動(dòng)推送消息時(shí)會(huì)觸發(fā)這里的onmessage
ws.onmessage = function(e){
    alert(e.data);
    var data = JSON.parse(e.data);
    var type = data.type || '';
    switch(type){
        case 'init':
            // 存儲(chǔ)client_id
            alert(data.client_id);
            clientId = data.client_id;
            // 可以在這里將client_id發(fā)送到服務(wù)器進(jìn)行綁定或其他操作
            break;
        case 'message':
            alert(data.text);
        // 其他消息處理
    }
};
</script>

Events.php代碼:
class Events
{
    /**
     * 當(dāng)客戶端連接時(shí)觸發(fā)
     * 如果業(yè)務(wù)不需此回調(diào)可以刪除onConnect
     * 
     * @param int $client_id 連接id
     */
    public static function onConnect($client_id)
    {
        Gateway::sendToClient($client_id, json_encode(array(
            'type'      => 'init',
            'client_id' => $client_id
        )));
    }

   /**
    * 當(dāng)客戶端發(fā)來(lái)消息時(shí)觸發(fā)
    * @param int $client_id 連接id
    * @param mixed $message 具體消息
    */
   public static function onMessage($client_id, $message)
   {
        // 向所有人發(fā)送 
        //Gateway::sendToAll("nihao");
   }

操作系統(tǒng)及workerman/webman等框架組件具體版本

Ubuntu 22.0,gatewayworker最新版本

999 0 0
0個(gè)回答

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