如何使SSL Websocket与Django通道一起使用

时间:2018-10-23 06:12:39

标签: javascript django ssl heroku websocket

我正在尝试弄清楚如何使此websocket通过https中的ssl工作。在django-channels教程之后,我制作了与该教程类似的Web应用程序并将其部署到Heroku。 Heroku的托管站点是安全的,因此我的Websocket通过'wss://'连接,但这会在浏览器控制台中导致错误,如下所示:

WebSocket connection to 'wss://asyncdrawshare.herokuapp.com/ws/drawshare/gfdg/' failed: Error during WebSocket handshake: Unexpected response code: 404
WebSocket is already in CLOSING or CLOSED state.

第一个错误引用:

var drawSocket = new WebSocket(
    'wss://' + window.location.host +
    '/ws/drawshare/' + roomName + '/');

第二个参考文献:

drawSocket.send(JSON.stringify({
        'color': drawColor.value,
        'x1': x,
        'y1': y,
        'x2': x + 4 ,
        'y2': y + 4
    }));

这些都是我的rooms.html的一部分。第一个错误表明网址未找到。考虑到路由,这对我来说没有意义:

# drawshare/routing.py
from django.conf.urls import url

from . import consumers

websocket_urlpatterns = [
    url(r'^ws/drawshare/(?P<room_name>[^/]+)/$', consumers.DrawConsumer),
]

这似乎暗示着不应该返回404。第二个错误似乎是第一个错误的结果,因为任何发送都会调用该错误的另一个实例。因此,如果您对正在发生的事情有任何了解,请告诉我。这个websocket向我要什么?预先感谢。

0 个答案:

没有答案