在python中运行TCP和循环进程



我正在尝试构建一个物联网设备,并期待着构建这样的东西:

示意图:

  1. 一个python进程,它作为一个循环运行,与硬件组件交互
  2. 一种TCP服务器(Pub-Sub(,它从客户端接收命令并传递给(1(
  3. (1( 可以与(2(交互以发布事件,并且(2(可以与(1(交互以控制硬件

这是我尝试过的:

  1. 使用twisted,我创建了一个酒吧子服务
  2. 尝试命令该服务发出事件
  3. Node.js服务器上的TCP侦听器与Twisted TCP服务器交互

这就是我观察到的:

Node.js服务器能够正确地向Twisted服务器发送消息。

调用reactor.run()后执行其他代码(示意图:1(的扭曲块,因为它开始在端口上侦听。

我希望这两个过程同时运行并相互作用。

有没有一种方法可以在不使用多线程或多进程的情况下实现这一点?

我使用asyncio解决了这个问题

我们可以运行两个可以异步的循环,两个循环中都有asyncio.sleep,这样就轮到另一个循环执行了。

python-docs还有一个带有asyncio的tcp服务器示例,因此解决了我的需求

最新更新