在 DRF 中推送通知

问题描述 投票:0回答:7

在 Django Rest 框架中实现推送通知的准确且最合适的方法应该是什么。 DRF 文档没有很好地解释它。 帮我解决这个问题

python django push-notification django-rest-framework
7个回答
6
投票

Django REST 框架用于使用内置 django 功能在 django 中创建 API 来检索请求并提供响应。

Django 本身不支持任何允许将推送通知发送到客户端的协议,因此 DRF 也不会这样做。

要创建推送通知,您必须使用 websockets,有一些第三方软件包向 django 添加了对 websockets 的支持。其中之一是 django-websocket-redis


3
投票

如果您正在寻找网络上的推送通知(使用 Web 套接字),您可以尝试使用 Firebase 云消息传递(FCM,Firebase 是免费,有一定的使用阈值)。您需要向 django 服务器添加代码以请求 Firebase 发送通知。

如果您正在移动设备上寻找推送通知,django-push-notifications包看起来不错,它甚至提供对 DRF 的支持来跟踪设备。在 Android 上,这也将使用 FCM。


3
投票

django-push-notifications 就是您正在寻找的。它很简单,只需几行代码即可实现。它可用于所有 Android、iOS 和 Web 推送通知。


0
投票

为此目的,我个人最喜欢的是:Django通知!Django Pushy

其他软件包:django-push-notificationsDjango Activity Stream

尝试使用 django-instapush 包。它可以通过 pip 轻松安装。这支持所有sql数据库,也支持通过mongoengine的mongoDB来存储设备信息。它具有可用于存储设备信息的内置模型,因此开箱即用。这是一个关于使用 django instapush 发送 django 推送通知的小教程

您还可以使用:

https://pypi.org/project/django-sns-mobile-push-notification/

您还可以尝试使用其他一些推送提供商。 Infobip Push 有一些新功能,例如您可以通过位置跟踪用户并在他们接近某些区域时发送推送


0
投票

如果你打算使用WebSocket来实现自己的通知,你可以查看channels


0
投票

如果您的项目 DRF 是在没有考虑异步流程的情况下构建的。您可以尝试django频道休息框架。您可以轻松地将异步类传递给您的视图集,并使您的端点表现得像异步进程。


0
投票

您可以使用 django web-push 包。如果您将 django-webpush 与 Django REST Framework (DRF) 集成,您需要实现一个自定义端点来保存推送订阅信息,该包默认接受会话身份验证,因此您需要实现 JWT。

© www.soinside.com 2019 - 2024. All rights reserved.