Django实时通知

Django实时通知,django,push-notification,mqtt,django-channels,asgi,Django,Push Notification,Mqtt,Django Channels,Asgi,我正在从事需要实时通信的django项目,我在google上发现最好的方法是使用MQTT协议,这样我需要通过子类化HBMQTTbroker来编写自己的代理,但似乎很难在同一个服务上运行MQTT代理和django web服务器,我还发现channels和ASGI应用程序在本地使用channellayers和redis非常好,但我不能在web主机上使用redis,因为主机存在一些限制。 一些解决方案告诉我使用channels和后端channels.layers.InMemoryChannelLaye

我正在从事需要实时通信的django项目,我在google上发现最好的方法是使用MQTT协议,这样我需要通过子类化
HBMQTT
broker来编写自己的代理,但似乎很难在同一个服务上运行MQTT代理和django web服务器,我还发现
channels
ASGI
应用程序在本地使用
channellayers
redis
非常好,但我不能在web主机上使用
redis
,因为主机存在一些限制。 一些解决方案告诉我使用
channels
和后端
channels.layers.InMemoryChannelLayer
但是根据他们的文档,它不是用于生产的

你知道吗?还是比使用mqtt和通道更好的解决方案? 或者我可以像任何消费者一样将
HBMqtt.Broker
channels
混合使用?
英语不是我的母语,所以我很抱歉有任何错误。

您能使用RabbitMQ吗?rabbitMQ有一个通道层,如果没有的话,您完全可以使用此代码作为编写自己的MQTT层的灵感。是否有任何可缓存的通道层后端?我的意思是它使用驱动器存储来存储这些数据?通道层的目标是向所有当前订阅的连接发送消息,它们不会在建立连接后将要发送的消息排队。因此,在通道层中没有持久性的用例。我不需要对消息进行排队,我需要的是将相同的消息发送给一组用户或所有用户,通道使用通道层到组的连接,MQTT broker使用订阅的主题发送给用户。因此,在通道中,您可以发送给组,但是,当您发送消息时,您将只能向联机用户发送消息。在频道中,
主题
被视为(HTTP或Websocket)用户中的
频道组
,您可以订阅这些频道。