• laravel配合swoole使用总结


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

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

    1.远程开门:

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

    2.离线报警

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

    3.定时开门

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

    4.离线刷卡

      卡号写入门禁

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

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

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

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

  • 相关阅读:
    linux下Boost序列化问题解决
    树莓派搭建基于flask的web服务器-通过移动端控制LED
    unison+inotify
    员工为什么会离职 (转)
    编译安装 Centos 7 x64 + tengine.2.0.3 (实测+笔记)
    Cassandra 原理介绍
    使用Go语言编写区块链P2P网络(译)(转)
    缓存击穿举例
    Cassandra 原理介绍
    Go学习之路
  • 原文地址:https://www.cnblogs.com/kkform/p/9236321.html
Copyright © 2020-2023  润新知