业务模块

后台以ThinkPHP框架为主框架,因业务需要又加入了WorkerMan Socket框架。
此后台开发可分为以下三部分:

  1. 与终端设备建立Tcp连接,接收终端发来的数据并做解析,业务逻辑处理并入mysql库
  2. 移动端小程序API的开发
  3. 后台cms管理系统的开发

删除线表示已完成


下面先讲下Tcp相关的业务处理:

服务的启动、线程设置、协议定义等等初始化工作请参考ThinkPHP扩展项Workerman即可。

WorkerMan中有两个重要的类Worker与Connection。

每个客户端连接对应一个Connection对象,可以设置对象的onMessage、onClose等回调,同时提供了向客户端发送数据send接口与关闭连接close接口,以及其它一些必要的接口。

可以说Worker是一个监听容器,负责接受客户端连接,并把连接包装成connection对象式提供给开发者操作。


$connection对象有一个非常重要的属性:id
int Connection::$id
连接的id。这是一个自增的整数。

注意:workerman是多进程的,每个进程内部会维护一个自增的connection id,所以多个进程之间的connection id会有重复。
如果想要不重复的connection id 可以根据需要给connection->id重新赋值,例如加上worker->id前缀。

这个id会用于服务器向指定设备的主动推送消息


客户端仅能收到两种消息:
一种是设备向后台发送数据后接收到的返回消息,另一种就是后台主动向指定设备推送的消息。
所以,设备端应根据接收到的后台数据的格式的不同,分别做相应的处理。

后台主动推送消息的情况为:用户在web端主动取消油桶的报警信息。

服务器向指定设备的主动推送消息的实现

请参考:这个例子

你可能感兴趣的:(业务模块)