自己学习 Python 和 IoT,我没用 MQTT,在设备端用了一个 GPRS DTU,在 DTU 设置好服务器 IP 和端口号,然后许多设备向 Server 定期发数据,不同设备通过 ID 区分。在 Server 端侦听这个端口,每接收到一个 TCP 连接开一个进程,接收数据并存入数据库,完毕后关闭这个进程。
我想知道 Python 有没有类似功能的库。因为还有好多问题我没考虑到,比如连接建立但是很长时间没发数怎么办?另外,我觉得这是一个比较老的应用场景了,Python 应该有一套解决办法。我是业余自学的,求各位大佬指教。
补充一下,我没用 MQTT 是因为我底层设备联网用的是一个 GPRS 透传设备,实现起来比较麻烦。
1
9hills 2019-02-12 17:18:42 +08:00
|
2
delectate 2019-02-13 02:25:53 +08:00 via Android
py 有 mqtt 库,建议使用;通常使用 imei 而不是 id 去区分设备;如果设备过多,开那么多进程,会出问题,你这个思路不对啊;保持长连接需要发心跳包。
|
3
sayhier OP 楼上说的对,如果用透传网关的话,实际上就是保持长连接了。即使没有数据发送,连接也不会断开,这样这个进程就一直结束不掉。我原来用 AT 指令里的 CIPSEND,发送完之后就结束了,这样进程才能结束。
MQTT 是必须的选择吗?在 IoT 设备的单片机里实现看起来有点复杂啊 |