【问题标题】:index.html served by django cant locate socket.io serverdjango 提供的 index.html 无法找到 socket.io 服务器
【发布时间】:2015-12-04 14:20:57
【问题描述】:

我正在尝试使用 node.js 和 socket.io 向 django 提供的页面添加实时功能

以下是我的 chat.js 文件

var http = require('http')
var server = http.createServer().listen(8002)
var io = require('socket.io').listen(server)
var redis = require('redis')

index.html 中要连接到套接字服务器的部分

<script src="http://localhost:8002/socket.io/socket.io.js"></script>

当我使用 node chat.js 时,节点看起来正在正确启动服务器,但是当我启动 django 服务器时,我在控制台中收到以下错误。

Not Found: /socket.io/
[04/Dec/2015 14:15:50] "GET /socket.io/?EIO=3&transport=polling&t=1449238550847-26 HTTP/1.1" 404 2154

手动访问 url 似乎也显示了 js 文件。

我哪里错了?

谢谢, 千焦

【问题讨论】:

  • 你能从浏览器中得到它吗? localhost:8002/socket.io/socket.io.js
  • 您的客户端似乎正在尝试连接到 Django 服务器而不是 Node 服务器,这表明您的客户端设置有问题。您能展示一下您是如何创建客户端连接的吗?
  • @Michelem - 是的,该网址打开了 js 文件
  • @robertklep - 通过客户端连接,您的意思是我在 index.html 页面中包含的脚本,对吗?除了 ''var socket = io()" 没有别的了

标签: javascript python django node.js sockets


【解决方案1】:

由于您在单独的 URL 上运行 Node.js,因此您需要将 socket.io 客户端显式指向它:

var socket = io('http://localhost:8002');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-27
    • 2017-11-23
    • 2022-06-13
    • 1970-01-01
    • 2019-10-15
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多