当前位置:K88软件开发文章中心编程语言PHPSwoole → 文章内容

Swoole server函数列表

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-15 15:54:52

成员函数public function swoole_server::sendfile(int $fd, string $filename);返回:发送成功返回true,失败返回false参数说明:参数说明int fd指定发送的fdstring filename发送的文件名说明:sendfile函数调用OS提供的sendfile系统调用,由操作系统直接读取文件并写入socket。sendfile只有2次内存拷贝,使用此函数可以降低发送大量文件时操作系统的CPU和内存占用。样例:$serv->sendfile($fd, __DIR__.'/test.jpg');swoole_server::connection_info功能描述:获取连接的信息函数原型:// 类成员函数public function swoole_server::connection_info(int $fd, int $from_id = 0);返回:如果fd存在,返回一个数组,连接不存在或已关闭返回false参数说明:参数说明int fd指定发送的fdint from_id来自于哪个Reactor说明:UDP socket调用该参数时必须传入from_id.返回的结果如下:名称说明int from_id来自于哪个Reactorint from_fd来自哪个Server Socketint from_port来自哪个Server端口int remote_port客户端连接的端口string remote_ip客户端连接的ipint connect_time连接到Server的时间,单位秒int last_time最后一次发送数据的时间,单位秒sendfile函数调用OS提供的sendfile系统调用,由操作系统直接读取文件并写入socket。sendfile只有2次内存拷贝,使用此函数可以降低发送大量文件时操作系统的CPU和内存占用。样例:$fdinfo = $serv->connection_info($fd);$udp_client = $serv->connection_info($fd, $from_id);swoole_server::connection_list功能描述:遍历当前Server的全部客户端连接函数原型:// 类成员函数public function swoole_server::connection_list(int $start_fd = 0, int $pagesize = 10);返回:调用成功将返回一个数字索引数组,元素是取到的fd。数组会按从小到大排序。最后一个fd作为新的start_fd再次尝试获取。调用失败返回false参数说明:参数说明int start_fd起始fdint pagesize每页取多少条,最大不得超过100.说明:connection_list仅可用于TCP,UDP服务器需要自行保存客户端信息样例:$start_fd = 0;while(true){ $conn_list = $serv->connection_list($start_fd, 10); if($conn_list===false) { echo "finish\n"; break; } $start_fd = end($conn_list); var_dump($conn_list); foreach($conn_list as $fd) { $serv->send($fd, "broadcast"); }}swoole_server::stats功能描述:获取当前Server的活动TCP连接数,启动时间,accpet/close的总次数等信息。函数原型:// 类成员函数public function swoole_server->stats();返回:结果数组参数说明:无说明:stats方法在1.7.5+后可用名称说明int start_time启动时间int connection_num当前的连接数int accept_countaccept总次数int close_countclose连接的总数样例:$status = $serv->stats();swoole_server::task功能描述:投递一个异步任务到task_worker池中函数原型:// 类成员函数public function swoole_server::task(string $data, int $dst_worker_id = -1);返回:调用成功返回task_worker_id,失败返回false参数说明:参数说明string datatask数据int dst_worker_id指定投递给哪个task进程,默认随机投递说明:此功能用于将慢速的任务异步地去执行,调用task函数会立即返回,Worker进程可以继续处理新的请求。函数会返回一个$task_id数字,表示此任务的ID任务完成后,可以通过return(低于swoole-1.7.2版本使用finish函数)将结果通过onFinish回调返回给Worker进程。发送的data必须为字符串,如果是数组或对象,请在业务代码中进行serialize处理,并在onTask/onFinish中进行unserialize。data可以为二进制数据,最大长度为8K(超过8K可以使用临时文件共享)。字符串可以使用gzip进行压缩。使用task必须为Server设置onTask和onFinish回调,并指定task_worker_num配置参数。样例:$task_id = $serv->task("some data");swoole_server::taskwait功能描述:投递一个同步任务到task_worker池中函数原型:// 类成员函数public function swoole_server::taskwait(string $task_data, float $timeout = 0.5, int $dst_worker_id = -1);返回:task执行的结果参数说明:参数说明string datatask数据float timeout超时时间int dst_worker_id指定投递给哪个task进程,默认随机投递说明:taskwait与task方法作用相同,用于投递一个异步的任务到task进程池去执行。与task不同的是taskwait是阻塞等待的,直到任务完成或者超时返回。任务完成后,可以通过return直接返回结果样例:$task_id = $serv->taskwait("some data", 30);swoole_server::finish功能描述:传递Task结果数据给worker进程函数原型:// 类成员函数public function swoole_server::finish(string $task_data);返回:无参数说明:参数说明string data结果数据说明:使用swoole_server::finish函数必须为Server设置onFinish回调函数。此函数只可用于Task Worker进程的onTask回调中swoole_server::finish是可选的。如果Worker进程不关心任务执行的结果,可以不调用此函数此函数在swoole-1.7.2以上版本已废弃,使用return代替。样例:$serv->finish("result data");swoole_server::heartbeat功能描述:进行心跳检测函数原型:// 类成员函数public function swoole_server::heartbeat(bool $if_close_connection = true);返回:无参数说明:参数说明bool if_close_connection是否关闭超时的连接,默认为true说明:该函数会主动发起一次检测,遍历全部连接,根据设置的heartbeat_check_interval和heartbeat_idle_time参数,找到那些处于idle闲置状态的连接swoole默认会直接关闭这些连接,heartbeat会返回这些连接的fd如果if_close_connection为false,则heartbeat会返回这些idle连接的fd,但不会关闭这些连接if_close_connection参数 在swoole-1.7.4以上版本可用样例:$serv->heartbeat();swoole_get_mysqli_sock功能描述:获取mysqli的socket文件描述符函数原型:// 公共函数int swoole_get_mysqli_sock(mysqli $db)返回:mysqli的fd参数说明:参数说明mysqli dbmysqli的连接说明:可将mysql的socket增加到swoole中,执行异步MySQL查询。

上一页  [1] [2] [3] [4]  下一页


Swoole server函数列表