× 警告!旧版文档已经暂停维护,请查看新版文档。点击前往新版文档

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('' !== $data = $conn->recv()) {
            $json = json_decode($data, true);
            if(is_array($json) && 'hello' === $json['data']) {
                $conn->send("world\n");
            }
        }
        echo 'disconnected', PHP_EOL;
    });
    $server->start();
});

  • 17611511813

    请问用你们4.4最新的Coroutine\Server 如何在handle中获取Coroutine\Server\Connection的ip

  • 17611511813

    用getpeername()获取回来的ip是0.0.0.0

  • 18656999023

    请问 实例里面的Assert 来源哪里