$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'));
示例#2
0
<?php

define('DEBUG', 'on');
define("WEBPATH", realpath(__DIR__ . '/../'));
require __DIR__ . '/../libs/lib_config.php';
//require __DIR__'/phar://swoole.phar';
Swoole\Config::$debug = false;
class EchoServer extends Swoole\Protocol\Base
{
    function onReceive($server, $client_id, $from_id, $data)
    {
        $this->server->send($client_id, "Swoole: " . $data);
    }
}
//设置PID文件的存储路径
Swoole\Network\Server::setPidFile(__DIR__ . '/echo_server.pid');
Swoole\Network\Server::addOption('c|config:', "要加载的配置文件");
/**
 * 显示Usage界面
 * php app_server.php start|stop|reload
 */
Swoole\Network\Server::start(function ($options) {
    $AppSvr = new EchoServer();
    $listenHost = empty($options['host']) ? '0.0.0.0' : $options['host'];
    $listenPort = empty($options['port']) ? 9501 : $options['port'];
    $server = Swoole\Network\Server::autoCreate($listenHost, $listenPort);
    $server->setProtocol($AppSvr);
    $server->run(array('worker_num' => 1));
});
示例#3
0
<?php

define('DEBUG', 'on');
define("WEBPATH", realpath(__DIR__ . '/../'));
require dirname(__DIR__) . '/libs/lib_config.php';
Swoole\Config::$debug = false;
$AppSvr = new Swoole\Protocol\HttpServer();
$AppSvr->loadSetting(__DIR__ . '/swoole.ini');
//加载配置文件
$AppSvr->setDocumentRoot(__DIR__ . '/webroot');
$AppSvr->setLogger(new Swoole\Log\EchoLog(true));
//Logger
Swoole\Error::$echo_html = false;
$server = Swoole\Network\Server::autoCreate('0.0.0.0', 8888);
$server->setProtocol($AppSvr);
//$server->daemonize(); //作为守护进程
$server->run(array('worker_num' => 0, 'max_request' => 5000, 'log_file' => '/tmp/swoole.log'));
示例#4
0
                    return;
            }
        }
    }
    /**
     * 广播
     * @param $client_id
     * @param $msg
     */
    public function broadcast($client_id, $msg, $ignoreSelf = true)
    {
        foreach ($this->connections as $clid => $info) {
            if ($ignoreSelf && $client_id == $clid) {
                continue;
            }
            $this->send($clid, $msg);
        }
    }
}
$AppSvr = new WebSocket();
$AppSvr->loadSetting(CONFIG_PATH . "/swoole.ini");
//加载配置文件
$AppSvr->setLogger(new \Swoole\Log\EchoLog(true));
//Logger
$server = Swoole\Network\Server::autoCreate('0.0.0.0', 9443, false);
$server->setProtocol($AppSvr);
if ('off' === DEBUG) {
    $server->daemonize();
}
//作为守护进程
$server->run(['worker_num' => 1, 'max_request' => 5000, 'heartbeat_check_interval' => 60]);