我正在尝试使用Django通道与浏览器建立websocket连接。websocket无法与服务器连接:
[2017/01/23 23:51:50] HTTP GET / 200 [0.03, 127.0.0.1:60445]
[2017/01/23 23:51:51] WebSocket HANDSHAKING /chat/ [127.0.0.1:60451]
[2017/01/23 23:51:56] WebSocket DISCONNECT /chat/ [127.0.0.1:60451]
socket = new WebSocket("ws://" + window.location.host + "/chat/");
socket.onmessage = function (e) {
alert(e.data);
};
socket.onopen = function () {
socket.send("hello world");
};
// Call onopen directly if socket is already open
if (socket.readyState == WebSocket.OPEN) socket.onopen();
CHANNEL_LAYERS = {
"default": {
"BACKEND": "asgiref.inmemory.ChannelLayer",
"ROUTING": "django_chat_server.routing.channel_routing",
}
}
channel_routing = {
# Wire up websocket channels to our consumers:
'websocket.connect': ws_add,
'websocket.receive': ws_message,
'websocket.disconnect': ws_disconnect,
}
我使用命令Python manage.py runserver
运行服务器。
编辑:降级到twisted
16.2.0版。无济于事。
您还应该有一个websocket.Connect使用者并接受连接,只有在接受连接之后,协议服务器才会完成websocket握手
channel_routing = {
"websocket.connect": consumers.ws_connect,
}
消费者。py
def ws_connect(message):
message.reply_channel.send({
'accept': True
})
参见http://channels.readthedocs.io/en/latest/releases/1.0.0.html#websocket-accept-reject-flow
问题内容: 我正在使用goroutines / channels检查网址列表是否可以访问。这是我的代码。这似乎总是返回true。为什么超时情况没有得到执行?目标是即使无法访问其中一个网址也要返回false 问题答案: 将在 当前的 goroutine(即正在运行的goroutine)中休眠。该语句仅在返回后才能正确运行,并且到那时,这两个分支都可以运行,并且运行时可以选择任何一个它。 您可以通过在
我有一个Django Vue。我正在尝试连接到django频道的js聊天应用程序。 要访问任何聊天室,您只需访问: http://localhost:8080/rooms/"id"/ 我的javascript连接如下所示: 我的consumers.py: 我的routing.py: 我的项目routing.py: 问题是,我无法连接到websocket,我的django服务器说: [失败实例:回溯
问题内容: 我正在尝试遵循Django频道教程。我能够实现此处所述的聊天功能。但是从此页面粘贴的单元测试完全复制失败,并出现以下错误。 完整回溯: 我的消费阶层: 我的测试模块: 我正在使用Python 3.5和Django 2.0。 问题答案: 无法序列化包含lambda的对象。经过一些研究,这似乎与Windows环境中的多处理问题有关(并且不仅限于此示例)。 解决此问题的一种方法是 替换为 莳
我能够使用Azure CLI模板部署Azure Bot注册通道 https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-deploy-cli 但我不知道如何在同一脚本中为新创建的频道设置Facebook频道凭据。 https://docs.microsoft.com/en-us/bo
所以在Android开发者文档中(https://developer.android.com/training/notify-user/build-notification)它给出了创建通知通道的命令行: 但复制了准确的代码块后,我得到了错误: 我认为这是一个方法,但不是从它的类(上下文)中调用的?但为什么会出现在文档中?我应该换成什么?
主要内容:静态网页,从数据库列表和显示数据在某些情况下编写视图代码,正如我们所看到前面工作真的很繁重。想象一下,只需要一个静态页面或列表页。 Django还提供了一种简单的方法来设置这些简单的视图被称为通用视图。 不同于传统的视图,一般的视图是一个类但没有函数。Django还提供了一组类 django.views.generic 通用视图,以及每一个普通视图是这些类或从它们中的一个类继承的。 有10+泛型类− 你可以使用通用视图。让我们来