I want to enable secure websocket connection to my Django Rest Framework application. I see that all services are starting correctly, but still when I try to connect via the following URL, the connection does not get established. It just fails with no trace.
wss://127.0.0.1:8000/ws/notifications/
Where as it works fine over ws
ws://127.0.0.1:8000/ws/notifications/
docker-compose.yml
services:
api:
platform: linux/amd64
build:
context: .
dockerfile: Dockerfile.dev
command: 'sh -c "./manage.py migrate && python manage.py runserver 0.0.0.0:8080"'
restart: always
networks:
- default
- fake_microservices
volumes:
- ./:/app
- $HOME/.aws:/root/.aws:ro
- /var/run/docker.sock:/var/run/docker.sock
- type: bind
source: ./docker/cpuinfo_with_fake_speed.txt
target: /proc/cpuinfo
ports:
- 8080:8080
env_file:
- ./.env
depends_on:
- db
daphne:
platform: linux/amd64
build:
context: .
dockerfile: Dockerfile.dev
command: 'sh -c "daphne -v 3 --access-log daphne.log -b 0.0.0.0 -p 8000 apps.asgi:application"'
restart: always
working_dir: /app
volumes:
- ./:/app
- /var/run/docker.sock:/var/run/docker.sock
asgi.py
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.local")
django_asgi_app = get_asgi_application()
from channels.routing import ProtocolTypeRouter, URLRouter
application = ProtocolTypeRouter(
{
"http": django_asgi_app,
"websocket": URLRouter([path('ws/notifications/', NotificationConsumer.as_asgi())]),
}
)
I can see that Daphne starts with no problems:
daphne_1 | 2023-04-06 09:05:27,576 INFO Starting server at tcp:port=8000:interface=0.0.0.0
daphne_1 | 2023-04-06 09:05:27,578 INFO HTTP/2 support enabled
daphne_1 | 2023-04-06 09:05:27,578 INFO Configuring endpoint tcp:port=8000:interface=0.0.0.0
daphne_1 | 2023-04-06 09:05:27,580 INFO HTTPFactory starting on 8000
daphne_1 | 2023-04-06 09:05:27,585 INFO Starting factory <daphne.http_protocol.HTTPFactory object at 0x7f93ca9abc40>
daphne_1 | 2023-04-06 09:05:27,587 INFO Listening on TCP address 0.0.0.0:8000
api_1 | Django version 3.2.14, using settings 'config.local'
api_1 | Starting ASGI/Channels version 3.0.5 development server at http://0.0.0.0:8080/
api_1 | Quit the server with CONTROL-C.
The app is configured with the port 8080.
I suspect that Daphne is not picking up the wss request at all.
Can someone please help?