发布于 2015-08-09 09:43:46 | 87 次阅读 | 评论: 0 | 来源: 网络整理
用于PHP自带stream/sockets扩展创建的socket,使用fwrite/socket_send等函数向对端发送数据。当发送的数据量较大,socket写缓存区已满,就会发送阻塞等待或者返回EAGAIN错误。
swoole_event_write函数可以将stream/sockets资源的数据发送变成异步的,当缓冲区满了或者返回EAGAIN,swoole底层会将数据加入到发送队列,并监听可写。socket可写时swoole底层会自动写入。
$fp = stream_socket_client('tcp://127.0.0.1:9501');
$data = str_repeat('A', 1024 * 1024*2);
swoole_event_add($data, function($fp) {
echo fread($fp);
});
swoole_event_write($fp, $data);
swoole_event_write调用之前,必须在将socket加入event_loop,否则会发生错误
此函数在swoole-1.7.9以上版本可用