V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sayhier
V2EX  ›  2019

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

  •  1
     
  •   sayhier · 2019-02-12 16:38:47 +08:00 · 1627 次点击
    这是一个创建于 2143 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    MQTT 是必须的选择吗?在 IoT 设备的单片机里实现看起来有点复杂啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1052 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:05 · PVG 04:05 · LAX 12:05 · JFK 15:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.