onPacket

接收到UDP数据包时回调此函数,发生在worker进程中。函数原型:

function onPacket(Swoole\Server $server, string $data, array $client_info);
  • $server,Server对象
  • $data,收到的数据内容,可能是文本或者二进制内容
  • $client_info,客户端信息包括address/port/server_socket等多项客户端信息数据

服务器同时监听TCP/UDP端口时,收到TCP协议的数据会回调onReceive,收到UDP数据包回调onPacket。 服务器设置的EOFLength等自动协议处理,对UDP端口是无效的,因为UDP包本身存在消息边界,不需要额外的协议处理。



  • 机器人

    client_info 有个bug,同一公网下的客户端IP跟端口号都是一样的。

  • Nick

    $client_info array ( 'server_socket' => 4, 'server_port' => 60007, 'address' => '127.0.0.1', 'port' => 46973, ) server_socket不知道是什么含义,待研究 server_port为服务端端口 address为客户端IP port是客户端端口

  • Nick

    server_socket是socket描述符,参考 http://www.ituring.com.cn/book/tupubarticle/3318 的10.1.2