【问题标题】:Suggestion about the way to build architecture for web-socket API关于构建 web-socket API 架构方式的建议
【发布时间】:2019-06-09 16:10:02
【问题描述】:

我正在使用 python WebSockets 在 python 上构建 web-sockets API。根据我在 API 中使用的服务,我需要通过线程来包装它们。所以我必须让我的异步网络套接字等待线程为响应生成数据。

我发现有很多方法可以实现这样的服务。我可以使用threads + 本机 python socket 模块或多路复用(python selector 模块)+ python socket 模块或多线程 + python socket 模块或threads + async python web-sockets

我想让一个 web-socket python 服务以下一个方式工作。我的客户端将数据发送到服务器。服务器启动thread_1,它以某种方式修改给定的数据,然后将修改后的数据传递给thread_2,后者再次修改它们一次,然后返回两次修改后的数据作为对客户端的响应。正如我所期望的,客户端不会等待服务器上的响应发送下一个数据包,但如果服务器返回一些结果,客户端将处理它。换句话说,客户端和服务器应该以异步顺序工作。不过,如果您能提出一些有助于我实现该问题目标的材料,那就太好了。

【问题讨论】:

  • 通常你不用担心服务器线程......部署时你使用独角兽或其他东西来服务你的 websocket 并指定工作人员的数量
  • 据我所知,这是一个 A/B 问题。您正在尝试找出线程,但真正的问题是任务数据和 WebSocket 连接之间的通知。更好的解决方案可能是回调或发布/订阅方法,其中通过回调或发布/订阅通知通知 WebSocket 连接完成。

标签: python api sockets websocket stream


【解决方案1】:

实现这种架构的方法之一是将多线程与 asyncio web-sockets 结合起来。这个目标是通过使用 asyncio executors 来实现的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-22
    • 2017-01-20
    • 2016-07-10
    • 2016-01-03
    • 1970-01-01
    • 2012-04-10
    • 2013-05-30
    • 2021-02-27
    相关资源
    最近更新 更多