尤其是移动网络,tcp连接非常不稳定,所以需要一套机制来保证服务器和客户端之间连接的有效性。
swoole扩展本身内置了这种机制,开发者只需要配置一个参数即可启用。swoole在每次收到客户端数据会记录一个时间戳,当客户端在一定时间内未向服务器端发送数据,那服务器会自动切断连接。 (推荐学习: swoole视频教程)
使用方法:
$serv->set(array( 'heartbeat_check_interval' => 5, 'heartbeat_idle_time' => 10,));
上面的设置就是每5秒侦测一次心跳,一个tcp连接如果在10秒内未向服务器端发送数据,将会被切断。
高级用法:
使用swoole_server::heartbeat()函数手工检测心跳是否到期。此函数会返回闲置时间超过heartbeat_idle_time的所有tcp连接。程序中可以将这些连接做一些操作,如发送数据或关闭连接。
以上就是swoole怎么保持不掉线的详细内容。