我现在要在django项目中部署一个chatbot应用程序。
对于实现它应该使用WebSocket还是常规HTTP调用(AJAX),我感到困惑。经过互联网研究,到目前为止,这是我对每种情况的利弊的了解。
通过HTTP使用WebSocket的原因:
建议将- WebSocket用于聊天应用程序,因为一旦建立连接,每条用户消息的开销就会很低。每次发送消息时,HTTP都会具有建立连接的开销(而且标头的大小将更大,并随每个请求/用户消息一起发送)
- WebSocket允许实时通信而没有变通方法,例如在HTTP情况下进行轮询,这可能导致客户端发出许多不必要的请求。
在WebSocket上使用HTTP的原因:
- HTTP 对于聊天机器人来说可能没什么问题(不是人与人之间的聊天),因为仅当用户向用户发送消息(即不希望Bot向用户发送消息)时,才触发聊天机器人的响应突然之间随机间隔,这需要实时通信。机器人只发送对用户消息的回复。
- 对于聊天机器人部分,必须使用
django-channels
和一台ASGI服务器,这将需要维护两个服务器(以及WSGI),这将使实现有些复杂。
我应该怎么做?
P.S。有人建议我研究Pusher之类的服务,尽管它似乎没有用于Python的服务器端SDK