laravel配合swoole使用总结

最近对接硬件做了两个项目,用到了swoole

第一个是门禁系统,需要远程开门、离线报警、定时开门、离线刷卡等功能

1.远程开门:

  目前用cli创建个临时客户端连接服务端发送命令,服务端处理完成后客户端根据返回状态判断是否开启成功

2.离线报警

  客户端断网后并不会服务端的closed()并不能检测到,所以用了swoole自带的心跳检测工具,在出发后会添加报警

3.定时开门

  用swoole_timer_tick轮询,有要开门的请求再通过远程开门的原理开门。

4.离线刷卡

  卡号写入门禁

另一个是小区门口的道闸,在近处门后不但记录进出照片还要显示屏上显示车牌号等信息。这个功能更简单,但是因为是定制原因,厂家好多功能没完善,只能自己想办法。

比如没有为每个显示屏设置唯一序列号。另外是没有心跳。

唯一序列号我用到的是显示屏设置的dns。因为服务端没用域名,所以dns也就没用了。

这两个项目都没把心跳当做一般心跳处理(即监听是否持续在线,可以直接用swoole自带的心跳)。心跳中一般包含设备唯一序列号,在此项目中没有心跳但我又想获取唯一序列号,只能在显示屏与服务端建立连接时发送指令获取显示屏的dns,再把dns(唯一序列号)和通道保存到数据库中。这样我可以根据dns查找通道就可以指定显示屏发送内容了。

猜你喜欢

转载自www.cnblogs.com/kkform/p/9236321.html