Exemplo n.º 1
0
        $this->send($client_id, 'Server: ' . $ws['message']);
        //$this->broadcast($client_id, $ws['message']);
    }
    function broadcast($client_id, $msg)
    {
        foreach ($this->connections as $clid => $info) {
            if ($client_id != $clid) {
                $this->send($clid, $msg);
            }
        }
    }
}
//require __DIR__'/phar://swoole.phar';
Swoole\Config::$debug = true;
Swoole\Error::$echo_html = false;
$AppSvr = new WebSocket();
$AppSvr->loadSetting(__DIR__ . "/swoole.ini");
//加载配置文件
$AppSvr->setLogger(new \Swoole\Log\EchoLog(true));
//Logger
/**
 * 如果你没有安装swoole扩展,这里还可选择
 * BlockTCP 阻塞的TCP,支持windows平台
 * SelectTCP 使用select做事件循环,支持windows平台
 * EventTCP 使用libevent,需要安装libevent扩展
 */
$enable_ssl = false;
$server = Swoole\Network\Server::autoCreate('0.0.0.0', 9443, $enable_ssl);
$server->setProtocol($AppSvr);
//$server->daemonize(); //作为守护进程
$server->run(array('worker_num' => 1, 'ssl_key_file' => __DIR__ . '/ssl/ssl.key', 'ssl_cert_file' => __DIR__ . '/ssl/ssl.crt'));
Exemplo n.º 2
0
                $resMsg['list'][] = array('fd' => $clid, 'name' => $info['name'], 'avatar' => $info['avatar']);
            }
            $this->send($client_id, json_encode($resMsg));
        } elseif ($msg['cmd'] == 'message') {
            $resMsg = $msg;
            $resMsg['cmd'] = 'fromMsg';
            //表示群发
            if ($msg['channal'] == 0) {
                foreach ($this->connections as $clid => $info) {
                    $this->send($clid, json_encode($resMsg));
                }
            } elseif ($msg['channal'] == 1) {
                $this->send($msg['to'], json_encode($resMsg));
                $this->send($msg['from'], json_encode($resMsg));
            }
        }
    }
    /**
     * 登录时
     */
    function login()
    {
    }
}
$AppSvr = new WebSocket();
$AppSvr->setLogger(new FileLog('runlog'));
//Logger
$server = new TcpServer('0.0.0.0', 9501);
$server->setProtocol($AppSvr);
//$server->daemonize(); //作为守护进程
$server->run(array('worker_num' => 1, 'max_request' => 5000));