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

Swoole server函数列表

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

_server $serv, string $event_name, mixed $event_callback_function);返回:设置成功返回true,否则返回false参数说明:参数说明string event_name回调的名称(大小写不敏感)mixed event_callback_function回调的PHP函数,可以是函数名的字符串,类静态方法,对象方法数组,匿名函数说明: 该函数必须在swoole_server::start函数调用前调用。事件名称字符串要加on。全部的回调函数列表点此查看onConnect/onClose/onReceive这3个回调函数必须设置。其他事件回调函数可选如果设定了timer定时器,onTimer事件回调函数也必须设置如果启用了task_worker,onTask/onFinish事件回调函数必须设置样例:$serv->handler('onStart', 'my_onStart');$serv->handler('onStart', array($this, 'my_onStart'));$serv->handler('onStart', 'myClass::onStart');swoole_server::start功能描述:启动server,开始监听所有TCP/UDP端口函数原型:// 类成员函数public function swoole_server::start()返回:启动成功返回true,否则返回false参数说明:无说明:启动成功后会创建worker_num+2个进程:Master进程+Manager进程+worker_num 个 Worker进程。另外。启用task_worker会增加task_worker_num个Worker进程三种进程的说明如下:进程类型说明Master进程主进程内有多个Reactor线程,基于epoll/kqueue进行网络事件轮询。收到数据后转发到Worker进程去处理Manager进程对所有Worker进程进行管理,Worker进程生命周期结束或者发生异常时自动回收,并创建新的Worker进程Worker进程对收到的数据进行处理,包括协议解析和响应请求样例:$serv->start();swoole_server::reload功能描述:重启所有worker进程。函数原型:// 类成员函数public function swoole_server::reload()返回:调用成功返回true,否则返回false参数说明:无说明:调用后会向Manager发送一个SIGUSR1信号,平滑重启全部的Worker进程(所谓平滑重启,是指重启动作会在Worker处理完正在执行的任务后发生,并不会中断正在运行的任务。)小技巧:在onWorkerStart回调中require相应的php文件,当这些文件被修改后,只需要通过SIGUSR1信号即可实现服务器热更新。1.7.7版本增加了仅重启task_worker的功能。只需向服务器发送SIGUSR2即可样例:$serv->reload();swoole_server::shutdown功能描述:关闭服务器。函数原型:// 类成员函数public function swoole_server::shutdown()返回:调用成功返回true,否则返回false参数说明:无说明:此函数可以用在worker进程内,平滑关闭全部的Worker进程。也可向Master进程发送SIGTERM信号关闭服务器。样例:$serv->shutdown();swoole_server::addtimer功能描述:设置一个固定间隔的定时器函数原型:// 类成员函数public function swoole_server::addtimer(int $interval);// 公共函数function swoole_server_addtimer(swoole_server $serv, int $interval);返回:设置成功返回true,否则返回false参数说明:参数说明int interval定时器的时间间隔,单位为毫秒ms说明:swoole定时器的最小颗粒是1毫秒,支持多个不同间隔的定时器。注意不能存在2个相同间隔时间的定时器。使用多个定时器时,其他定时器必须为最小定时器时间间隔的整数倍。该函数只能在onWorkerStart/onConnect/onReceive/onClose回调函数中调用。增加定时器后需要为Server设置onTimer回调函数,否则Server将无法启动。样例:$serv->addtimer(1000); //1sswoole_server_addtimer($serv,20); //20msswoole_server::deltimer功能描述:删除指定的定时器。函数原型:// 类成员函数public function swoole_server::deltimer(int $interval);返回:无参数说明:参数说明int interval定时器的时间间隔,单位为毫秒ms说明:删除间隔为interval的定时器样例:$serv->deltimer(1000);swoole_server::after功能描述:在指定的时间后执行函数函数原型:// 类成员函数public function swoole_server::after(int $after_time_ms, mixed $callback_function, mixed params);// 公共函数function swoole_timer_after(swoole_server $serv, int $after_time_ms, mixed $callback_function, mixed params);返回:无参数说明:参数说明int after_time_ms指定时间,单位为毫秒msmixed callback_function指定的回调函数mixed params指定的回调函数的参数说明:创建一个一次性定时器,在指定的after_time_ms时间后调用callback_funciton回调函数,执行完成后就会销毁。callback_function函数的参数为指定的params需要swoole-1.7.7以上版本。样例:$serv->after(1000, function( $params ){ echo "Do something\n";} , "data" );swoole_server::close功能描述:关闭客户端连接函数原型:// 类成员函数public function swoole_server::close(int $fd, int $from_id = 0);返回:关闭成功返回true,失败返回false参数说明:参数说明int fd指定关闭的fdint from_idfd来自于哪个Reactor(swoole-1.6以后已废弃该参数)说明:调用close关闭连接后,连接并不会马上关闭,因此不要在close之后立即写清理逻辑,而是应该在onClose回调中处理样例:$serv->close( $fd );swoole_server::send功能描述:向客户端发送数据函数原型:// 类成员函数public function swoole_server::send(int $fd, string $data, int $from_id = 0);返回:发送成功返回true,失败返回false参数说明:参数说明int fd指定发送的fdstring data发送的数据int from_idfd来自于哪个Reactor说明:data,发送的数据,最大不得超过2M。send操作具有原子性,多个进程同时调用send向同一个连接发送数据,不会发生数据混杂。如果要发送超过2M的数据,建议将数据写入临时文件,然后通过sendfile接口直接发送文件UDP协议,send会直接在worker进程内发送数据包向UDP客户端发送数据,必须要传入from_id发送成功会返回true,如果连接已被关闭或发送失败会返回falseswoole-1.6以上版本不需要from_idUDP协议使用fd保存客户端IP,from_id保存from_fd和portUDP协议如果是在onReceive后立即向客户端发送数据,可以不传from_id样例:$serv->send( $fd , "Hello World");swoole_server::sendfile功能描述:发送文件到TCP客户端连接函数原型:// 类

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


Swoole server函数列表