Coroutine\Server

创建协程TCP服务器。与Server模块不同之处,Coroutine\Server是完全协程化实现的服务器。因此可以:

  • 动态创建销毁,在运行时可以动态监听端口,也可以动态关闭服务器
  • 处理连接的过程是完全同步的,程序可以顺序处理ConnectReceiveClose事件

4.4以上版本中可用

短命名

可使用Co\Server短名。

使用实例

use Swoole\Coroutine\Server;
use Swoole\Coroutine\Server\Connection;
go(function () {
    $server = new Server('0.0.0.0', 9601, false);
    $server->handle(function (Connection $conn) use ($server) {
        while(true) {
            $data = $conn->recv();
            $json = json_decode($data, true);
            Assert::eq(is_array($json), $json['data'], 'hello');
            $conn->send("world\n");
        }
    });
    $server->start();
});