文章目录
-
1. pomelo-admin源码解析
该模块主要是用于监控服务器的进程。日志、配置、内存等等信息,可自由扩展
支持monitor类型或者client类型的登录,其中client类型可以额外执行3条控制命令 -
子模块解析:
-
pomelo-admin/client
基于pomelo-admin/protocol/mqtt/mqttClient实现的客户端
连接指定的服务器并处理通讯
pomelo中 node_modules/pomelo/bin/pomelo中有调用‘adminClient’ -
pomelo-admin/master
MasterAgent是基于pomelo-admin/protocol/mqtt/mqttServer实现的服务器
监听client以及monitor的连接并通信。支持请求其他monitor数据、给client/monitor发送数据功能
其中在client以及monitor连接时,需要进行验证,验证接口可从外部传递进来doAuthUser\doAuthServer -
pomelo-admin/modules
这里提供的就是一些可以调用的模块。详见代码
-
pomelo-admin/monitor
基于pomelo-admin/protocol/mqtt/mqttClient实现的客户端
连接指定的服务器并处理通讯 -
pomelo-admin/protocol/mqtt
实现有MqttClient以及MqttServer
采用了mqtt-connnection + mqtt-package来实现的一套消息流收发功能。
主要处理publish消息,然后转发topic+payload(json串)。额外增加了超时重连,心跳时间存储功能 -
mqtt简单介绍
-
pomelo-admin并没有使用该类库的实现,而是使用了自己实现的pomelo-admin/protocol/mqtt
MQTT是基于TCP/IP封装的一套通信协议,消息封装有固定的消息头,提供16种消息类型。
客户端有3个最基本的操作 subscribe(订阅) unsubscribe(取消订阅) publish(广播)
服务器收到广播消息后,可以广播给所有订阅了该topic(频道)的客户端
MQTT只是支持了16种消息类型的结构序列化,以及消息的传递,具体处理逻辑自行编写tips: mqtt_client的接口在’mqtt/client.js’中。
mqtt_server的接口在’mqtt/generate.js’中。
接口的参数格式可以参照mqtt-packet/README.md -
mqtt库所实现的客户端和服务器详解
-
服务器流程
-
接收消息
MQTT创建一个服务器(MqttServer\MqttSecureServer),当有客户端连上时生成一个
MqttServerClient->connection->
-
-