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

socket.io 如何根據(jù)id判斷用戶是否下線了?

伊倫哲羅
public static $online = [];
    public function index()
    {
        $context = array(
            'ssl' => array(
                'local_cert'  => $_SERVER['DOCUMENT_ROOT'].'\lx.diguadou.com.cer',
                'local_pk'    => $_SERVER['DOCUMENT_ROOT'].'\lx.diguadou.com.key',
                'verify_peer' => false,
            )
        );
      // $io = new SocketIO(8282,$context);//socket的端口
        $io = new SocketIO(8282);//socket的端口
        $io->on('workerStart', function () use ($io) {
            $inner_http_worker = new Worker('http://0.0.0.0:5880');
            $inner_http_worker->onMessage = function ($http_connection, $data) use ($io) {
                // isset(static::$online[$data->post('uid')]);
                $adc["code"]=200;
                $adc["message"]='成功';
                $adc['uid']=$data->post('uid');//要推送的UID 但是不知道怎么送出去
                $adc['data']=json_decode($data->post('msg'),true);
                //$io->to($data->post('uid'))->emit('pusha', $adc);//這個(gè)試了不起效果
                $io->emit('pusha',$adc);//只能這樣群發(fā)了 前端根據(jù)用戶的ID 從推送的數(shù)據(jù)里撿起屬于自己的
                if(!$data->post('msg')) {
                    $rb=input('param.');
                    $rc=input('');
                    $http_connection->send('fail, $_GET["msg"] not found!!rb:');
                }
                $http_connection->send('ok');
            };
            $inner_http_worker->listen();
        });
        // 當(dāng)有客戶端連接時(shí)
         $io->on('connection', function($socket) {
            // 定義chat message事件回調(diào)函數(shù)
            $socket->on('init', function ($data) use($socket) {
                //這里判斷用戶是否在數(shù)組里結(jié)果也沒起效 控制臺(tái)里依舊顯示多了一個(gè)ID
                //前端頁面刷新就多一個(gè)
                $data = json_decode($data, true);
                $socket->uid = $data['uid'];
                static::$online[$data['uid']] =$socket;
                $socket->emit('init', 'login listen success', function ($res){});
            });
            $socket->on('push', function ($data) use($socket) {
                $socket->emit('push', '這是push7788', function ($res){});
                // $io->emit('find message from server',$data);
            });
            $socket->on('disconnect', function($socket){
                static::$online[$socket->uid]
             });
        });
        Worker::runAll();
    }

鏈接的時(shí)候 記錄了用戶的id

用戶前端 執(zhí)行了

this.$socket.close() //這是JS

斷開了鏈接

如何在PHP里把用戶的ID消除掉呢? 如何判斷$online 有沒有這個(gè) ID呢?

里面的注解的問題 折騰一星期好像也沒有多大效果

4451 2 0
2個(gè)回答

six
$socket->on('disconnect', function($socket){
   static::$online[$socket->id]
}); 

連接斷開的時(shí)候消除id。

用isset(static::$online[$id]) 來判斷是否在線

  • 暫無評(píng)論
伊倫哲羅
    public static $online = [];
    public function index()
    {
        $context = array(
            'ssl' => array(
                'local_cert'  => $_SERVER['DOCUMENT_ROOT'].'\lx.diguadou.com.cer',
                'local_pk'    => $_SERVER['DOCUMENT_ROOT'].'\lx.diguadou.com.key',
                'verify_peer' => false,
            )
        );
      // $io = new SocketIO(8282,$context);//socket的端口
        $io = new SocketIO(8282);//socket的端口
        $io->on('workerStart', function () use ($io) {
            $inner_http_worker = new Worker('http://0.0.0.0:5880');
            $inner_http_worker->onMessage = function ($http_connection, $data) use ($io) {

                // isset(static::$online[$data->post('uid')]);

                $adc["code"]=200;
                $adc["message"]='成功';
                $adc['uid']=$data->post('uid');//要推送的UID 但是不知道怎么送出去
                $adc['data']=json_decode($data->post('msg'),true);
                //$io->to($data->post('uid'))->emit('pusha', $adc);//這個(gè)試了不起效果
                $io->emit('pusha',$adc);//只能這樣群發(fā)了 前端根據(jù)用戶的ID 從推送的數(shù)據(jù)里撿起屬于自己的
                if(!$data->post('msg')) {
                    $rb=input('param.');
                    $rc=input('');
                    $http_connection->send('fail, $_GET["msg"] not found!!rb:');
                }
                $http_connection->send('ok');
            };
            $inner_http_worker->listen();
        });
        // 當(dāng)有客戶端連接時(shí)
         $io->on('connection', function($socket) {
            // 定義chat message事件回調(diào)函數(shù)
            $socket->on('init', function ($data) use($socket) {
                //這里判斷用戶是否在數(shù)組里結(jié)果也沒起效 控制臺(tái)里依舊顯示多了一個(gè)ID
                //前端頁面刷新就多一個(gè)
                $data = json_decode($data, true);
                $socket->uid = $data['uid'];
                static::$online[$data['uid']] =$socket;
                $socket->emit('init', 'login listen success', function ($res){});
            });
            $socket->on('push', function ($data) use($socket) {
                $socket->emit('push', '這是push7788', function ($res){});
                // $io->emit('find message from server',$data);
            });
            $socket->on('disconnect', function($socket){
                static::$online[$socket->uid]
             });
        });
        Worker::runAll();
    }

這是我寫的大部分代碼 感覺問題特別多

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??