我正在尝试弄清楚如何使此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向我要什么?预先感谢。