在 Django Rest 框架中实现推送通知的准确且最合适的方法应该是什么。 DRF 文档没有很好地解释它。 帮我解决这个问题
Django REST 框架用于使用内置 django 功能在 django 中创建 API 来检索请求并提供响应。
Django 本身不支持任何允许将推送通知发送到客户端的协议,因此 DRF 也不会这样做。
要创建推送通知,您必须使用 websockets,有一些第三方软件包向 django 添加了对 websockets 的支持。其中之一是 django-websocket-redis
如果您正在寻找网络上的推送通知(使用 Web 套接字),您可以尝试使用 Firebase 云消息传递(FCM,Firebase 是免费,有一定的使用阈值)。您需要向 django 服务器添加代码以请求 Firebase 发送通知。
如果您正在移动设备上寻找推送通知,django-push-notifications包看起来不错,它甚至提供对 DRF 的支持来跟踪设备。在 Android 上,这也将使用 FCM。
django-push-notifications 就是您正在寻找的。它很简单,只需几行代码即可实现。它可用于所有 Android、iOS 和 Web 推送通知。
为此目的,我个人最喜欢的是: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 有一些新功能,例如您可以通过位置跟踪用户并在他们接近某些区域时发送推送
如果你打算使用WebSocket来实现自己的通知,你可以查看channels
如果您的项目 DRF 是在没有考虑异步流程的情况下构建的。您可以尝试django频道休息框架。您可以轻松地将异步类传递给您的视图集,并使您的端点表现得像异步进程。
您可以使用 django web-push 包。如果您将 django-webpush 与 Django REST Framework (DRF) 集成,您需要实现一个自定义端点来保存推送订阅信息,该包默认接受会话身份验证,因此您需要实现 JWT。