.. Django Websocket Notification documentation master file, created by sphinx-quickstart on Wed Feb 5 10:19:59 2020. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. ============================================== Django Websocket Notifications's documentation ============================================== A Django application to deliver user notifications made with `django-snitch `_ using WebSockets. Quick start ----------- This applications works using django-channels, so, you need to integrate this with your project before to integrate django-websocket-notifications. So, to make the quick start as quick and simple as possible, we've made the following assumptions: * You already have integrated django-channels * You are using a channel layer, like Redis * You have a `routing.py` file * Your project uses DRF to deliver a RESTful API **1** Install using pip: .. code-block:: bash pip install django-websocket-notifications **2** Add "websocket_notifications" to your INSTALLED_APPS settings like this: .. code-block:: python INSTALLED_APPS += ('websocket_notifications',) **3** Add the routing patterns to your `routing.py` file: .. code-block:: python from channels.auth import AuthMiddlewareStack from channels.routing import ProtocolTypeRouter, URLRouter from websocket_notifications.routing import websocket_urlpatterns application = ProtocolTypeRouter( {"websocket": AuthMiddlewareStack(URLRouter(websocket_urlpatterns)),} ) **4** (Optional) In order to test the integration, you can add the following view to your `urls.py` file to be able to access to a testing view: .. code-block:: python urlpatterns += [ path( "websocket-notifications/", include( "websocket_notifications.urls", namespace="websocket_notifications", ), ), ] Now, you can access to `/websocket-notifications/listener/` to check the integration. **5** Add the ViewSet to the DRF router: .. code-block:: python from websocket_notifications.api.rest_framework import NotificationGroupViewSet router = routers.DefaultRouter() router.register("websocket-notifications/groups", viewset=NotificationGroupViewSet) **6** Integrate with `django-snitch`: .. code-block:: python from websocket_notifications.snitch.backends import WebSocketNotificationBackend @snitch.register(EVENT) class MyEventHandler(snitch.EventHandler): ephemeral = True notification_backends = [WebSocketNotificationBackend]