使用Django部署聊天机器人:WebSockets与HTTP

时间:2019-02-15 11:35:10

标签: python django websocket pusher daphne

我现在要在django项目中部署一个chatbot应用程序。

对于实现它应该使用WebSocket还是常规HTTP调用(AJAX),我感到困惑。经过互联网研究,到目前为止,这是我对每种情况的利弊的了解。

通过HTTP使用WebSocket的原因:

    建议将
  1. WebSocket用于聊天应用程序,因为一旦建立连接,每条用户消息的开销就会很低。每次发送消息时,HTTP都会具有建立连接的开销(而且标头的大小将更大,并随每个请求/用户消息一起发送)
  2. WebSocket允许实时通信而没有变通方法,例如在HTTP情况下进行轮询,这可能导致客户端发出许多不必要的请求。

在WebSocket上使用HTTP的原因:

  1. HTTP 对于聊天机器人来说可能没什么问题(不是人与人之间的聊天),因为仅当用户向用户发送消息(即不希望Bot向用户发送消息)时,才触发聊天机器人的响应突然之间随机间隔,这需要实时通信。机器人只发送对用户消息的回复。
  2. 对于聊天机器人部分,必须使用django-channels和一台ASGI服务器,这将需要维护两个服务器(以及WSGI),这将使实现有些复杂。

我应该怎么做?

P.S。有人建议我研究Pusher之类的服务,尽管它似乎没有用于Python的服务器端SDK

0 个答案:

没有答案