如何在React App中实现消息通知



我现在正在构建一个应用程序,使用React和Redux作为前端,使用Django作为后端。我试图实现的是,每当最终用户上传文件时,与该文件相关的所有最终用户都应该收到通知。

我正在考虑使用websocket/socket.io,但我不确定这是否适用于Django。或者使用任何其他技术来实现消息通知功能的经验或建议?

简单的谷歌搜索显示Django Channels

Channels是一个采用Django并将其能力扩展到HTTP之外的项目,用于处理WebSockets、聊天协议、物联网协议等。它建立在一个名为ASGI的Python规范之上。

使用javascript中的field_field.files[0].file.slice()方法,可以通过websocket以块的形式发送文件。使用field_field.files[0].size,您可以获得总大小,并将您发送的内容的总和与文件的大小进行除法,以构建进度条。确保在@sync_to_async装饰器中包装文件写入,因为不这样做会阻塞事件循环。该方法是Channels的一部分,可在Asgiref中找到。

Channels Redis可以用来通知任何或所有用户发生了事件,例如正在上传的文件。

最新更新