Socket.io 404 未找到

2024-01-08

由于某种原因,我不断收到“http://127.0.0.1:3000/socket.io/socket.io.js http://127.0.0.1:3000/socket.io/socket.io.js“当我查看 chrome 开发者工具网络时,未找到 404。我花了一个多小时试图理解为什么这不起作用,因为它之前工作正常,我不认为我改变了任何东西。

Server:

var express = require('express'),
    session = require('express-session');

var app = express();

var server = require('http').Server(app);
var io = require('socket.io')(server);
var MongoStore = require('connect-mongo')(session);

var sessionMiddleware = session({
    resave: false,
    saveUninitialized: false,
    secret: 'secret',
    store: new MongoStore({url: "mongodb://localhost:27017/database"})
});

app.use(sessionMiddleware);



io.use(sessionMiddleware, function(socket, next) {
    sessionMiddleware(socket.request, socket.request.res, next);
});

io.sockets.on('connection', function (socket) {
    console.log("Socket connected");
});

app.set('view engine', 'pug');
app.use(express.static(__dirname + '/public'));

app.get('/', function(req, res) {
   res.render('index');
});

app.listen(3000);
console.log('listening');

哈巴狗文件:

html
    head
        script(src="http://127.0.0.1:3000/socket.io/socket.io.js")
        script(type='text/javascript', src='../javascripts/chat.js')
    body

客户端 JavaScript:

try {
    var socket = io.connect('http://127.0.0.1:3000');

} catch(e) {
    console.log(e);
}

改变这个:

app.listen(3000);

to:

server.listen(3000);

app.listen()创建一个新的不同的服务器,因此您附加的 socket.io 服务器不是实际正在侦听的服务器,因此您的 socket.io 服务器不活动并且无法处理/socket.io/socket.io.js请求或传入连接(如果脚本文件首先加载失败)。

有关内容的更多详细信息,请参阅此答案app.listen()以及为什么它不是您想要的代码布局方式:

websockets、express.js 无法与服务器建立连接 https://stackoverflow.com/questions/42472726/websockets-express-js-and-can-t-establish-a-connection-to-the-server/42472813#42472813


请注意,您可以使用app.listen(),但是您不必创建自己的服务器,并且必须捕获来自的返回值app.listen()并将其用作传递给 socket.io 初始化的服务器:

var app = express();
var server = app.listen(3000);
var io = require('socket.io')(server);

这并不完全是你的代码的结构(但你可以重新安排事情以这种方式做到这一点)。

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

Socket.io 404 未找到 的相关文章

随机推荐

  • 无法在 webpack-dev-server 中查看请求日志

    我在用webpack dev server在本地充当 CDN 服务器来提供各种静态资源 如 css js html 等 一切运行正常 但出于调试目的 我无法看到 CDN 服务器收到的请求 webpack dev server一旦编译了静态资
  • 如何在 Rust 1.12 中检查 read_line 中的 EOF?

    考虑以下程序 如何检测 stdin 中的 EOF 并打破循环 use std io use std process fn main let mut sum 0 loop let mut number str String new match
  • 如何覆盖按钮点击角度的测试? (Stackblitz附后)

    我正在制作一个非常简单的应用程序 它有一个输入框和一个按钮 输入用于输入email 订阅button与事件处理程序 输入电子邮件并单击按钮将进行 api 调用 此方法有效 subscribeEmail this error if this
  • 如何在Spring中将文件夹的所有文件加载到资源列表中?

    我有一个文件夹 想要使用 Spring 和通配符将所有 txt 文件加载到列表中 通过注释我可以执行以下操作 Value classpath dir txt private Resource files 但是我怎样才能以编程方式使用 spr
  • RGB 与 HLS 之间的转换

    我正在使用 python 的 colorsys 库将 RGB 颜色值转换为 HLS 为了验证一下 我尝试转换回 RGB 并得到了不同的值 我可以理解由于精度问题而产生的微小差异 但这些值有很大不同 这是我的代码 import colorsy
  • django原始查询百分号问题

    我尝试在 Django 中进行原始 sql 查询like函数 但结果为空 我尝试mysql客户端工具这个查询并得到很多记录 如何解决这个问题 我的查询 SELECT s s id as pk FROM d status as s selec
  • 查询 google play 商店的应用程序版本?

    有没有一种方法可以在游戏商店中查询应用程序的版本 而无需用户凭据 我知道这个非官方 API http code google com p android market api http code google com p android m
  • iPhone SDK 中“ ”(空格)的转义序列是什么?

    在我的 iPhone 应用程序中 我有一个 ASCII 艺术 两个字符之间有很多空格 所以我需要添加空格的转义序列来代替每个空格 iPhone SDK 中的空格转义序列是什么 您可以使用不间断空格 http en wikipedia org
  • AWS CodeBuild buildspec.yml 递归获取所有文件和子文件夹

    我正在尝试使用 AWS CodeBuild 获取嵌套内的所有文件和子文件夹public文件夹并使用 CodePipeline 部署到 S3 存储桶 我能够将它们全部连接在一起 但很难配置buildspec yml文件以获得我想要的输出 我的
  • Rcpp 和 CULA:分段错误

    我从以下内容中提取了相关位GPU工具R 用于在我的 GPU 上运行 QR 分解的包Rcpp通过动态加载链接到的共享库库拉工具 航站楼内一切顺利R app在我的 Mac 上 结果符合R s qr 函数 但问题是退出时发生分段错误R app 使
  • 使用 Hibernate 注解映射枚举类型

    我的 Java 模型上有一个枚举类型 我想将其映射到数据库上的表 我正在使用 Hibernate Annotations 但我不知道该怎么做 由于我搜索的答案相当旧 我想知道哪种方式最好 提前致谢 除了这个之外你还需要其他东西吗 Enume
  • clusterExport、环境和变量范围

    我编写了一个函数 在其中定义变量并加载对象 这是一个简化版本 fn1 lt function x load data RData a vector named data source myFunctions R library raster
  • 为淘汰赛创建二叉树

    我正在尝试创建一个用于淘汰赛的二叉树 该树由带有左指针和右指针的 TNode 组成 这是我想出的代码 如下 然而 它在使用指针时遇到了困难CreateTree部分 一旦创建了一个足够大的空树 我需要将 Memo1 List 上的名称添加到树
  • 如何在不更改 Xcode 项目的情况下#ifdef 环境变量?

    我想检测 Xcode 设置之外的环境变量 我可以在运行时检查环境 如中指定的那样执行此操作检测 iOS 应用程序是否在调试器中运行 https stackoverflow com questions 4744826 detecting if
  • 如何正确重载 TypeScript 中的函数?

    谁能告诉我这里的类型有什么问题吗 我试图让自己清楚 TS 中的重载 但下面的问题让我真的很困惑 type myNumbers 1 2 3 type myStrings a b c interface ReturnValue tag a 1
  • Python 的 CSV 读取器和迭代

    我有一个 CSV 文件 如下所示 Company Inc 10 30 09 A R Summary Aged Analysis Report 10 35 01 All Clients USER Client Account Customer
  • 将 xib 文件添加到 Swift 包

    我想开始使用模块化代码以及新的 Swift Package Manager 与 Xcode 11 的集成 问题是我似乎无法将任何类型的 UI 文件添加到我的新包中 我只需要添加一个 xib 文件 这是如何实现的 目前 Swift 包仅支持源
  • 使用 LINQ 检查一个字符串的字符是否包含在另一个字符串中

    我正在用 C 在命令行中制作拼字游戏 玩家必须输入一些单词 如下所示 Word Points some 6 first 8 potsie 8 day 7 could 8 postie 8 from 9 have 10 back 12 thi
  • UIButton 阴影位于所有 4 面

    我正在尝试为 UIButton 生成阴影 下面是我正在使用的 myButton layer shadowColor UIColor blackColor CGColor myButton layer shadowOpacity 0 5 my
  • Socket.io 404 未找到

    由于某种原因 我不断收到 http 127 0 0 1 3000 socket io socket io js http 127 0 0 1 3000 socket io socket io js 当我查看 chrome 开发者工具网络时