如何使用渠道websocket在Django中找到websocketbridge.js?

时间:2018-11-25 15:10:30

标签: django python-3.x websocket redis channels

我正在尝试使用Django项目中的渠道来实现websocket。我正在为webscoketbridge.js获取404以下是html模板。     {% load staticfiles %}          {% block title %}交付{% endblock %}

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link href='https://fonts.googleapis.com/css?family=Satisfy' rel='stylesheet' type='text/css'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="{% static 'channels/js/websocketbridge.js' %}" type="text/javascript"></script>

enter image description here

enter image description here

此外,我尝试查看virtualenv / lib / python3.5 / site-packages / channels路径,没有js文件夹或任何名为websocketbridge.js的文件

有人解决了这个问题吗?

2 个答案:

答案 0 :(得分:2)

javascript桥已在v2.1.4中删除。这是提交:https://github.com/django/channels/commit/2a9d764ad03927581aa2bfcadccc3e953949cb98#diff-b582cbb2f8294afa8bbe26c4c360a01d

这在我的书中打破了语义版本控制。

答案 1 :(得分:0)

正如@tobyspark所说的,django-channels 2中的javascript包装器已被完全删除。您可以阅读有关js websocket包装器如何在通道1 here中工作的更多信息。

清除浏览器错误的最简单的解决方法是在错误所示的路径“ static / channels / js /”中创建一个名为websocketbridge.js的文件,也可以在HTML src属性匹配中指定任何其他路径静态文件的位置,然后添加来自here的代码。

但是您必须找到更好的实现。您可以使用ReconnectingWebSocket。在channel 2发行文档中,声明可能还有其他第三方软件包用于绑定,但是我不知道其他任何软件包。