django 通道 websocket 连接不工作

2024-03-23

我正在尝试从服务器上的 django Channels-examples 运行多聊天项目。它可以在 Windows 计算机上本地运行,但是当我将其放在 Linux 服务器上并使用 runserver 启动它时,它不会:

./manage.py runserver

然后,当我调用该网站时,它会正确显示,但是一旦 JS 向其发送 websocket 请求,我总是会得到以下响应:

[2016/08/02 14:35:48] HTTP GET /chat/stream/ 404 [0.04, 127.0.0.1:40186]
....(many lines of this)

所以websocket请求被当作http请求来处理。响应应该是这样的:

[2016/08/02 16:34:45] WebSocket CONNECT /chat/stream/ [127.0.0.1:60250]

我不知道哪里出了问题。 http 与 websocket 的路由似乎是在 daphne/twisted/... 深处的某个地方完成的。

我的频道设置是(如果有任何帮助的话):

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "asgi_redis.RedisChannelLayer",
        "CONFIG": {
            "hosts": [(redis_host, 62031)],
        },
        "ROUTING": "multichat.routing.channel_routing",
    },
}

Twisted版本是16.2.0。

非常感谢任何关于寻找方向的帮助或提示。


我想到的一些问题/建议:

Linux 服务器是用于开发还是生产? IE。是否有 HTTP 服务器或只是运行普通的 DJANGO? (在前一种情况下,您不以“./manage runserver”开头。)

“然后当我调用该网站时,它会正确显示......”

这是因为请求的端口号不同吗? 40186 与 60250。

您会收到 404,例如未找到网址。这可以是 DJANGO 的 HTTP 服务器的响应。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django 通道 websocket 连接不工作 的相关文章

  • 从管理页面删除 Django 中的 ManyToManyField 并单击按钮

    我有两个模型如下 模型 py from django db import models from django contrib auth models import User class Skill models Model skill m
  • Django检查用户组权限

    我有一个名称 的自定义权限可以显示分发页面 代号 can show distribute page 内容类型 User 我添加两个组 名为 manager and normal 一个拥有所引用的许可 一个没有 如何判断用户是否有该权限 我尝
  • 在 Django 中创建用户个人资料页面

    我是 Django 的初学者 我需要设置一个网站 其中每个用户都有一个个人资料页面 我见过 django 管理 用户的个人资料页面 应该存储一些只能由用户编辑的信息 谁能指出我这怎么可能 任何教程链接都会非常有帮助 另外 django 是否
  • 如何更新多个字段,包括django模型实例的相关字段?

    我想知道 更新多个字段 包括 django 中模型实例的相关字段 的标准方法是什么 Class User models Model id models CharField name models CharField dob models C
  • 在 uwsgi 应用程序中运行子进程

    我正在编写一个 Django 应用程序 它需要执行长时间的异步任务 最初的想法是从执行该工作的视图启动一个子流程 并在另一个视图中监视进度 当应用程序通过以下方式启动时 这个想法运行良好manage py runserver 但是当它在 u
  • Django - render()、render_to_response() 和 direct_to_template() 之间有什么区别?

    两者之间的视图有什么区别 用 python django 新手可以理解的语言 render render to response and direct to template 例如从Nathan Borror 的基本应用程序示例 https
  • Django ModelForm 不将数据保存到数据库

    Django 初学者在使用表单时遇到很多困难 是的 我已经完成了本教程并浏览了很多网络 我所拥有的是我在这里和其他网站上找到的内容的混合体 我正在使用 Python 2 7 和 Django 1 5 虽然官方文档很广泛 但它往往假设您已经了
  • 如何显示图像的其他图像是无

    经过我认真思考后 我只是不知道我的代码有什么问题以及如何修改它 问题是这样的 当用户插入 url 时 如果该 url 是指向 youtube 的链接 则需要显示 youtube 缩略图 如果该网址不是 YouTube 视频的链接 则需要显示
  • ModuleNotFoundError:没有名为“模型”的模块

    我有一个非常简单的 django 应用程序 我试图将其部署到 heroku 但它不断崩溃 在我的本地机器上一切正常 但在 Heroku 上却不行 这是我收到的错误 切到相关部分 File app hello admin py line 4
  • Django 表单验证消息未显示

    我试图限制可以以表单上传的文件类型 大小和扩展名 该功能似乎有效 但未显示验证错误消息 我意识到if file size gt 4 1024 1024可能不是最好的方法 但我稍后会处理这个问题 这是 forms py class Produ
  • Django 的登录代码

    谁能给我一些带有模板代码的示例代码来创建 Django 登录 Thanks 包含示例登录模板在文档中 https docs djangoproject com en stable topics auth default module dja
  • 从 django 返回带有 BOM 的 UTF-8 编码的 csv

    我正在尝试输出一个用户可以用 Excel 打开的 CSV 文件 我已经用 UTF 8 编码了所有字符串 但是当我用 Excel 打开文件时 我看到了乱码 只有在将文件转换为带 BOM 的 UTF 8 在 Windows 上使用 notepa
  • @monthly cron 作业不可靠

    我们的客户希望我们每月创建一份报告 过去 我们使用 monthly cron 作业来完成此任务 但这并不可靠 服务器可能会在这一分钟内宕机 Cron 不会重新运行这些作业 如果服务器已启动 此时数据库可能无法访问 如果服务器已启动且数据库已
  • django-celery 在开发中工作,在 wsgi 生产中失败:如何调试?

    我正在使用 django celery 任务队列 它在开发中运行良好 但在 wsgi 生产中根本不起作用 更令人沮丧的是 used在生产中工作 但我不知何故破坏了它 sudorabbitmqctlstatus 告诉我rabbitmq服务器正
  • Django:在表单中初始化小部件时获取当前网址

    当我初始化表单以在其中找到我想要检查的字符串时 我想获取当前的 url 根据这个字符串 我想更改放入单选小部件中的数据 我想根据 url 显示不同的 radioselect 选项 class FunctionForm forms Model
  • Django ModelForm 验证失败,没有错误

    好吧 我已经盯着这几个小时试图弄清楚发生了什么 但无济于事 我正在尝试使用 instance 关键字创建一个 ModelForm 将其传递给一个现有的模型实例 然后保存它 这是 ModelForm 在我试图找出此问题的原因时 从原始版本中删
  • 将 Django OAuth2 提供程序与 JupyterHub 结合使用

    我正在尝试运行与 JupyterHub 服务器配对的 Django Web 应用程序 用户通过 Web 应用程序输入 然后在登录后获得对笔记本服务器的访问权限 为了促进这一点 我尝试使用OAuth2 其中 Django 提供身份验证 Jup
  • 在上下文中模拟计时,以使用 auto_now_add=True 的字段 DateTimeField 创建模型

    我想模拟时间以便能够set特定时间到某个类型的字段DateTimeField with auto now add True在我的测试期间 例如 class MyModel created at models DateTimeField au
  • 没有 django_site 这样的表

    我正在关注以下文档django disqus http django disqus readthedocs org en latest installation html configuring your django installati
  • 管理文件字段当前 url 不正确

    在 Django 管理中 只要有 FileField 编辑页面上就会有一个 当前 框 其中包含指向当前文件的超链接 但是 此链接会附加到当前页面 url 因此会导致 404 因为不存在这样的页面 例如 http 127 0 0 1 8000

随机推荐