websocket - Direct Line BOT 中多个活动对话的 HTTP GET 轮询或 Websocket 连接
问题描述
我正在使用 Directline 将机器人与不同的渠道或聚合器(如 MessageBird、WeChat Line 等)集成。我的 BOT 可以发送多条消息作为响应。可以有 1000 多个唯一用户可以通过 Direct Line Bot 发送和接收消息。根据文档,我可以在开始对话后将这些消息发送到直线机器人。
我创建了一个中间层服务,它是 Line、Message Bird 等渠道/聚合器与直线机器人之间的连接器。我们计划使用 websocket 接口来接收来自 directline bot 的消息。我浏览了文档,我有以下问题:
- 我们是否需要为每个活动对话创建一个 websocket 或 HTTP GET 轮询以接收来自直线机器人的消息?
- 如果是的话,如果有大量正在进行的对话(例如 1000 多个),我们如何扩展这些 websocket 或轮询服务?
我在这里看到过类似的帖子,但我没有选择不使用 Direct Line 连接 Bot 和渠道/聚合器。
如果您需要更多信息,请告诉我。谢谢你的帮助!
解决方案
您的问题的答案如下:
是的,您确实需要为每个活动对话创建一个 websocket 或 HTTP GET 轮询,以接收来自直线机器人的消息。活动的 websocket 或 HTTP GET 特定于 1 次对话,通常是 1 次转换为 1 位用户。
您不需要在通道端进行缩放。我们的服务将轻松处理该负载(针对数千个并发机器人)。但是,您需要适当地扩展您的客户端,这基本上是构建一个可扩展的 Web 服务。
希望这会有所帮助。
推荐阅读
- android - 我在听者单击按钮以查看详细信息时遇到问题
- cuda - 使用 COO 作为输入时,nvGRAPH SSSP 示例代码给出错误 8
- android - 从数据库中检索记录时,如何将图像分配给学生记录?
- node.js - 在 mocha 单元测试中,如何模拟一个全局变量?
- php - Codeigniter - 使用查询字符串进行路由
- javascript - 使用 SuperAgent 动态更改主机
- angular - 如何在 Ionic 3 中使用 httpclient 解析 REST API 失败消息
- javascript - GSAP Draggable:如何动态阻止移动
- scala - spark 2.2.0,如果有追加,调用 cache() 会得到不同的结果
- php - 带有两个参数的 PHP 异常