Routing
Routing in Django Polly is handled through Django Channels, allowing you to manage both HTTP and WebSocket connections.
ASGI Application
Django Polly provides a pre-configured ASGI application that includes routing for both HTTP and WebSocket connections.
Usage:
In your project’s asgi.py file:
from django_polly.routing import polly_asgi_routes
from channels.routing import ProtocolTypeRouter
application = ProtocolTypeRouter(polly_asgi_routes)
Custom Routing
You can extend or customize the default routing by creating your own ProtocolTypeRouter:
from channels.routing import ProtocolTypeRouter, URLRouter
from django.urls import path
from .consumers import MyCustomConsumer
application = ProtocolTypeRouter({
"websocket": URLRouter([
path("ws/chat/", MyCustomConsumer.as_asgi()),
# Include Django Polly's default routing
*polly_asgi_routes["websocket"],
]),
})
URL Configuration
Django Polly also provides URL patterns for HTTP endpoints. Include these in your project’s urls.py:
from django.urls import path, include
urlpatterns = [
# ...
path('polly/', include('django_polly.urls')),
]
For more advanced routing configurations, refer to the Django Channels documentation.