目前遇到的场景是一个 IOT 设备,用户需要向设备端下发查询命令,然后返回查询数据给用户。
目前我想的是,广播消息给服务端,然后找到设备端连的哪个台服务器,然后下发指令。但是这个过程不知道用什么方式回调给用户。 麻烦各位大佬指教指教
1
linbiaye 2022-01-11 00:01:21 +08:00
每个消息给一个唯一 id ,客户端响应指令以后,带上 id 回调结果
|
2
chenny3 2022-01-15 20:30:57 +08:00
IOT 可以考虑使用 mqtt 协议。每个 device 都有唯一的 id ,给指定 id 的设备发送消息即可。
|
3
huang119412 2022-01-19 10:49:59 +08:00
"广播消息给服务端,然后找到设备端连的哪个台服务器", 这可以发送执行命令,回调其实也没什么问题,那同步查询呢? TCP 是有状态服务,简单点只需要维护 machineId<=>channel ,和 machineId->serviceId 这两个关系,就能知道某台机器在哪台服务器上,前者只需要 chm 就行了,后者就需要 redis 之类全局通信组件了。netty 的事件机制,也不需要特别复杂的双写一致。分析一下回调,如果回调是 http(无状态),则没什么问题。可以加路由 http 服务器专门转发用户机器请求,架构就是 用户<=>业务服务器 http<=>路由服务器 http<=>TCP 服务器。
|