我正在通过与大型聊天平台 API(例如 Slack)交互的 Web 后端构建聊天机器人。这是当前的工作流程:
- 用户通过 Slack 向我的机器人发送消息
- 我的 webapp (Python Flask) 收到来自 Slack 服务器的 HTTP 请求,带有用户的标识符
- 事件被添加到队列中,我的 webapp 只是发回 200 状态代码
- 产生一个工人来处理事件。工作人员最终使用用户 ID 和要显示的消息对 Slack 进行 API 调用。
该系统运行良好。但是,现在我想拥有自己的聊天前端,与我的后端进行交互。我怎样才能设法让我的前端等待我的后端发送的通知并随后显示消息?我必须依赖websocket吗?还有其他我没有想到的方法吗?显然,我似乎需要一些东西来持续保持客户端和我的服务器之间的连接,这与进行不需要持续连接的 API 调用不同?
另一个问题是我的 API 服务器和我的工作人员是独立的。也就是说,当 API 服务器接收到请求时,worker 会独立生成。如果我想象使用 websocket 的东西,我相信我的工作人员必须向我的 API 服务器发送一个请求,然后它会通过 websocket 将内容发送到客户端。我想知道这看起来是正确的还是完全荒谬的。