【问题标题】:How to implement message notification in React App?如何在 React App 中实现消息通知?
【发布时间】:2019-04-28 07:32:25
【问题描述】:

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

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

【问题讨论】:

标签: django reactjs sockets socket.io notifications


【解决方案1】:

一个简单的谷歌搜索显示 Django Channels

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

【讨论】:

  • 所以这意味着我应该使用 Django 通道作为后端来处理前端 websocket 对吗?
  • 没错,稍微修改一下,会更容易理解。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-02
    • 2019-12-30
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2020-01-20
    • 2018-05-30
    • 2023-03-12
    相关资源
    最近更新 更多