问题标签 [django-channels]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 达芙妮,安装 django 频道时出现扭曲的点子错误
我在pip
安装时遇到了一个小问题django channels
,我从github存储库中注意到了这一点
注意:最新版本的 Channels 也需要最新版本的 Daphne、asgi_redis 和 asgiref,因此请确保您一次更新所有版本
我忽略了这一点,刚开始pip install channels
,但发生了错误
Could not find a version that satisfies the requirement twisted<16.3,>=15.5 (from daphne) (from versions: )
No matching distribution found for twisted<16.3,>=15.5 (from daphne)
当我尝试时pip install twisted
,它只是变得混乱
所以我试图为此找到一些解决方案,并且该解决方案建议我重新编译我的python,所以我问你有没有其他解决方案可以解决这个问题。
我正在使用django==1.8.7
andpython3.5
用于我现有的项目。
django - Django-channels 在服务器启动时未显示通道层默认值 (asgi_redis.RedisChannelLayer)
由于某种原因,我无法通过 daphne、redis 和 django-channel 连接到我的 redis 服务器。我的配置如下:
django - django 频道 websocket 连接不起作用
我正在尝试从服务器上的 django 频道示例运行多聊天项目。它在 Windows 机器上本地工作,但是当我将它放在 linux 服务器上并使用 runserver 启动它时,它不会:
然后,当我调用网站时,它会正确显示,但是一旦 JS 向它发送 websocket 请求,我总是会得到这个响应:
所以websocket请求被当作http请求处理。响应应该是这样的:
我不知道这是哪里出错了。http 与 websocket 的路由似乎是在 daphne/twisted/...
我的频道设置是(如果有任何帮助的话):
扭曲版本是 16.2.0。
非常感谢任何有关查看方向的帮助或提示。
python - 如何使用 django 频道
我需要在 django 中使用 websocket,所以我阅读了频道文档。现在我知道了基本概念,但仍然感到困惑,因为详细的代码很少。
以下是我的问题:
如何使 ASGI 与代码中的 WSGI 保持一致?换句话说,如何配置WSGI Server to ASGI
或ASGI to WSGI application
?
会不会影响使用ajax的方式?
如果django向其他网站发送http请求会影响吗?
任何帮助将不胜感激。
javascript - Django 频道:Echo 示例问题
我正在遵循频道文档提供的示例代码并遇到了问题。django 服务器成功地接受了来自浏览器的 websocket,并且发送似乎可以正常工作。但是,消息(ws_message)的服务器端处理似乎没有发生,并且浏览器端没有注册任何回复(也没有任何警报)。
此行为与在 Django 频道中观察到的行为非常相似- Echo 示例不起作用。然而,虽然切换到 twisted 16.2.0 是这种情况的解决方案,但我已经在使用 twisted 16.2.0。
代码片段如下:
消费者.py
路由.py
设置.py
然后运行 django 开发服务器(manage.py runserver)并通过浏览器控制台执行以下命令:
收到消息后,应发出警报并登录控制台。然而,两者都没有发生。
python - 使用 django 频道和 websockets
我有一个表格可以在127.0.0.1:8000/dashboard/处输入线坐标,并有一个“确定”按钮来提交坐标。通过调用 view将坐标发布在127.0.0.1:8000/api/line/LineDisplay()
。在这里,我想将 Line 坐标推回127.0.01:8000/dashboard/。
到目前为止,我已经完成了以下工作:
网址.py:
视图.py:
消费者.py
同样,我添加了以下代码:routing.py
以下行已添加到 settings.py:
目前,我不知道如何处理群“聊天”。我什至不需要组。为了在发布新行后立即将行坐标显示在127.0.0.1:8000/dashboard/上,还需要做些什么?
注意: Line 坐标已正确发布到/api/line/我想我可能必须编写一个服务器代码才能从通道中获取数据并将其推回,对吗?谢谢。
python - 如何在channels.Demultiplexer之后获取django用户?
我正在尝试使用 Django Channels 构建与用户相关的 websocket 服务。我在 routing.py 的第一行有这个解复用器:
所以,现在我在 routing.py 中编写消费者:
或者
他们没有 message.user 输入。
我需要再次调用 channel_session_user_from_http 吗?有没有可靠的方法在解复用器中附加用户?
python - Django 频道
我对 Django Channels、WebSockets 和聊天应用程序几乎没有疑问。与谷歌一起服务让我进入了聊天室,人们可以在那里建立联系并开始聊天。但我不知道一个用户如何发送另一个用户的即时消息。
例如:
1) 我将 John 添加到朋友中,并想开始聊天。2)在服务器端,我可以生成对象 Room,我和 John 作为成员。3)当我通过 WebSocket 向这个房间发送消息时,我知道这条消息是谁的,但我不知道如何获取John 的频道
django - 对 Django 频道消费者的测试:“没有向消费者发送回复频道”
我正在使用带有装饰器的Django Channels@channel_session_user
(用于访问 Django 的会话数据)。
这工作正常,但在测试时出现问题。
下面的测试应该在websocket.receive
通道上放置一条消息,然后ws_receive
应该获取消息并将其放置在消息action
值中定义的通道上。最后,我测试它是否真的放在那个频道上。
相反,我收到以下错误,指向ws_receive()
调用所在的行。
ValueError: No reply_channel 发送给消费者;@channel_session 只能用于包含它的消息。
错误在Channels源中引发。
打印reply_channel
返回None
而不是包含正确的回复通道名称。
我忽略了一些明显的东西?
python - 使用主管运行 Django 工作服务器?
我正在尝试使用主管部署我的 Django 应用程序。当我启动主管时,它会正确启动 daphne,但是不会启动工作服务器。
这是 supervisor.conf 的代码示例(工人块):
浏览器等待了很长时间,然后显示:
我还可以补充一点,如果我独立启动流程(不使用任何流程控制系统),它实际上可以工作。我在 Nginx 反向代理后面,但我认为这根本不是问题..
这是主管的输出: