入门指引 Server Client Process AsyncIO Memory HttpServer WebSocket 高级 其他

发布于 2015-08-09 09:43:46 | 86 次阅读 | 评论: 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以上版本可用

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务