【问题标题】:Simple websocket server in Python for publishing用于发布的 Python 中的简单 websocket 服务器
【发布时间】:2018-09-02 19:47:10
【问题描述】:

我在 Python 中有一个正在运行的 CLI 应用程序,它使用线程来执行一些工作程序。现在我正在为这个应用程序使用电子编写一个 GUI。对于简单的请求/响应,我使用gRPC 在 Python 应用程序和 GUI 之间进行通信。

然而,我正在努力寻找合适的发布机制来将数据推送到 GUI:gRPCs 集成流无法工作,因为它使用了生成器;正如我之前提到的,阻塞任务是使用线程(threading.Thread 的子类)执行的。我还想从这些线程中发出某些事件(例如进度)。

然后我找到了Flasks SocketIO 实现,但是,这是一个阻塞执行,因此并不真正适合我的想法 - 我必须再次执行两个进程(Flask 和我的 CLI 应用程序)...

我发现的另一个包是websockets,但我不知道如何实现他们在patterns 中提到的这个producer() 函数。

我的最后一个想法是部署一个基于代理的消息系统,例如 Redis,或者干脆回退到无代理的 zmq,这对于 GUI 应用程序的设置有点麻烦。

那么简单的问题:

是否有任何简单的框架允许在 Python 中创建服务器“任务”,我可以将消息传递到发布到?

【问题讨论】:

    标签: python api websocket publish-subscribe


    【解决方案1】:

    对于任何在 python 中苦苦挣扎的人:

    不,没有任何简单的框架。恕我直言,python 的并发处理有点混乱(与内置并发的其他语言如 golang 相比)。有多个主要的包实现了这一点,其中一个是asyncio,但大多数是不兼容的。我最终使用了类似this question 中提出的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 2012-12-05
      • 2021-09-13
      • 2020-10-30
      • 1970-01-01
      • 2021-11-21
      • 2016-05-12
      相关资源
      最近更新 更多