Swoole基础概念与长链接 | |
同步与异步
| 同步: 代码的运行从上往下执行
异步: | |
|
阻塞与非阻塞
| 阻塞: 需要等待上一行代码执行完毕
非阻塞: 不需要等待执行的结果,就可以进行下一步操作 |
swoole中的异步回调
| 异步客户端
异步通过receive监听发送 服务端事件 (接收)
同步客户端
|
长连接
| 长链接: 一直连接,一直保持联系
短链接: 建立一次连接,就没有了
短链接可以通过ajax轮询的方式进行模拟长链接,但是如果是多台服务器多个连接的话,在这个过程中不断创建连接关闭连接的动作就会消耗很多不必要的资源,会给服务器造成很大的压力 |
如何确保对方是否连接上 | 长链接可能会因为网络问题,导致服务断开,客户端断开 怎么保持连接,确保对方是否连接 1.心跳机制 在一定时间内,客户端定时去请求服务端,看是否有信息; 发送的心跳数据包,需要足够地小 2.轮询机制 服务端定时主动去监控客户端状态 客户端返回状态信息 |
swoole中的心跳检测
| Swoole中我们可以通过set的方式来设置心跳检测 heartbeat_check_interval 设置服务器定时检测在线列表的时间间隔 heartbeat_idle_time 设置连接最大的空闲时间,如果最后一个心跳包的时间与当前时间差超过设定值则认为连接失效
建议heartbeat_idle_time比heartbeat_check_interval的值多两倍多
swoole_timer_tick : 每隔固定时间执行某一个方法,会返回定时器id swoole_timer_after : 在规定的时间后执行,只执行 一次,会返回定时器id swoole_timer_clear :清空定时器,条件是定时器的id
服务端
客户端 |
udp与tcp
| Udp:(不负责任 渣男)
Tcp:(认真,可靠) 就是他了
|
swoole(网络IO 一)
最新推荐文章于 2020-08-05 10:27:40 发布