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

關(guān)于Socket和WebSocket互相通信的問題請(qǐng)教

xmfail

workerman Demo程序是基于telnet socketI協(xié)議;
web-msg-sender-master消息發(fā)送是基于websocket,如何在onGatewayMessage判斷是 TextProtocol 還是 WebSocket?

/**
     * 網(wǎng)關(guān)有消息時(shí),判斷消息是否完整
     */
    public static function onGatewayMessage($buffer)
    {
        if(   TextProtocol::check($buffer) == 0 ){
            return 0;
        }eles{//
            return WebSocket::check($buffer);
        }
    }
3892 4 0
4個(gè)回答

xmfail

看了,但中間關(guān)于協(xié)議存儲(chǔ)這塊的邏輯不是很明白,寫不下去,求助;

  • 暫無評(píng)論
walkor 打賞

可以貼下具體哪里不懂

  • 暫無評(píng)論
xmfail

從這一部分開始,不是很理解;----原因是對(duì)workerman的內(nèi)部ID存儲(chǔ)不是很懂;


// 當(dāng)客戶端第一次發(fā)來數(shù)據(jù)時(shí),需要根據(jù)協(xié)議存儲(chǔ)客戶端列表,IOS協(xié)議一組,WebSocket一組
if(!isset($_SESSION))
{
     // 保存session說明已經(jīng)將該client_id寫到對(duì)應(yīng)協(xié)議的client列表中了
     $_SESSION = $protocol;
     // 將client_id寫入到對(duì)應(yīng)協(xié)議的客戶端列表
     your_group_add_fun($protocol , $client);
     // 保存這個(gè)client的協(xié)議到集中存儲(chǔ)(例如memcache)中,以便私聊時(shí)用對(duì)應(yīng)的協(xié)議給它發(fā)送數(shù)據(jù)
     your_store_client_protocol($client_id, $protocol);
}

// **_廣播消息**_
$new_message = "XXXXXXXXXXXXXXXXXX";

// 獲取IOS客戶端列表
$ios_client_id_array = your_get_client_array_func('IOS');
// 以IOS的協(xié)議向IOS客戶端發(fā)送數(shù)據(jù)
Gateway::sendToAll(yourIOSProtocol::encode($new_message),  $ios_client_id_array);

// 獲取websocket客戶端列表
$ws_client_id_array = your_get_client_array_func('WEBSOCKET');
// 以websocket協(xié)議向websocket客戶端發(fā)送數(shù)據(jù)
Gateway::sendToAll(Websocket::encode($new_message),  $websocket_client_id_array);

// **_ 私聊 **_
$client_id_to_send = $message;
$protocol = your_get_client_protocol($client_id_to_send);
if(‘IOS’ == $protocol)
{
    $new_message = yourIOSProtocol::encode($new_message);
}
else
{
    $new_message = Websocket::encode($new_message);
}
// 2.1.2版本為Gateway::sendToUid($client_id_to_send, $new_message);
Gateway::sendToClient($client_id_to_send, $new_message);
}
  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??