zoukankan      html  css  js  c++  java
  • laravel配合swoole使用总结

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

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

    1.远程开门:

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

    2.离线报警

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

    3.定时开门

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

    4.离线刷卡

      卡号写入门禁

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

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

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

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

  • 相关阅读:
    hanlp在jdk11 maven8编译后在jdk8 报错
    Linux top命令输出到文件——持续输出某个进程的信息
    maven with depend
    解决mount时发生错误wrong fs type, bad option, bad superblock
    leetcode中 01背包问题相关汇总
    leetcode刷题总结901-950
    Xgboost如何处理缺失值/
    leetcode刷题总结851-900
    leetcode刷题总结801-850
    leetcode刷题总结751-800
  • 原文地址:https://www.cnblogs.com/kkform/p/9236321.html
Copyright © 2011-2022 走看看