Coroutine\Server->handle

设置连接处理函数。函数原型:

function Coroutine\Server->handle(callable $fn);
  • 服务器在Accept成功后,会自动创建协程并执行$fn
  • $fn接受一个参数,类型为Swoole\Coroutine\Server\Connection
  • $fn是在新的子协程空间内执行,因此在函数内无需再次创建协程

必须在Server::start之前设置处理函数

回调函数

function callback(Swoole\Coroutine\Server\Connection $conn) {
    while(true) {
        $data = $conn->recv();
    }
}

连接方法

Connection类提供了3个方法:

  • recv():接收数据,如果设置了协议处理,将每次返回完整的包
  • send($data):发送数据
  • close():关闭连接

Socket 属性

可以读取Connection::$socket属性得到当前连接的Socket对象。可调用更多底层的方法,请参考 Coroutine\Socket

$socket = $conn->socket;
$socket->getpeername();