Python 在 servier 端如何有效的管理端口侦听,并做响应?

2019-02-12 16:38:47 +08:00
 sayhier

自己学习 Python 和 IoT,我没用 MQTT,在设备端用了一个 GPRS DTU,在 DTU 设置好服务器 IP 和端口号,然后许多设备向 Server 定期发数据,不同设备通过 ID 区分。在 Server 端侦听这个端口,每接收到一个 TCP 连接开一个进程,接收数据并存入数据库,完毕后关闭这个进程。

我想知道 Python 有没有类似功能的库。因为还有好多问题我没考虑到,比如连接建立但是很长时间没发数怎么办?另外,我觉得这是一个比较老的应用场景了,Python 应该有一套解决办法。我是业余自学的,求各位大佬指教。

补充一下,我没用 MQTT 是因为我底层设备联网用的是一个 GPRS 透传设备,实现起来比较麻烦。

1437 次点击
所在节点   2019
3 条回复
9hills
2019-02-12 17:18:42 +08:00
delectate
2019-02-13 02:25:53 +08:00
py 有 mqtt 库,建议使用;通常使用 imei 而不是 id 去区分设备;如果设备过多,开那么多进程,会出问题,你这个思路不对啊;保持长连接需要发心跳包。
sayhier
2019-02-13 08:37:43 +08:00
楼上说的对,如果用透传网关的话,实际上就是保持长连接了。即使没有数据发送,连接也不会断开,这样这个进程就一直结束不掉。我原来用 AT 指令里的 CIPSEND,发送完之后就结束了,这样进程才能结束。

MQTT 是必须的选择吗?在 IoT 设备的单片机里实现看起来有点复杂啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/534255

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX