在客户端上找不到 socket.io.js

2023-12-08

这个问题之前已经被问过,但在之前的回复中没有找到任何解决方案。

Socket.IO 给我带来了两个问题:

  1. 服务器端给出了此错误 - 错误 - 监听 EACCES 我阅读了堆栈溢出并通过发出 sudo 命令来启动服务器来解决此问题。
  2. 现在客户端似乎没有按照脚本行找到 socket.io.js 文件 -

据我所知,使用 Chrome 开发人员工具控制台找不到文件,文件上有 404 错误。

我读到该文件是由服务器动态创建的。但我在根文件夹上执行了“ls-a”。找不到socket.io/socket.io.js 文件。

有任何想法吗?

作为参考,这里是我的服务器代码 -

var http = require('http'),
  path = require("path"),
  url = require("url"),
  fs = require("fs"),
  mime = require("mime"),
  io = require("socket.io").listen(server);
var homepath = ".";
var server = http.createServer(function (req, res) {
  var uri = url.parse(req.url).pathname;
  var filepath = path.join(homepath, uri);
  console.log(filepath);
  path.exists(filepath, function (exists) {
    if (!exists) {
      //404 response
      res.writeHead(404, {
        "Content-Type": "text/plain"
      });
      res.write("404 File not Found \n");
      res.end();
    } else {
      if (fs.statSync(filepath).isDirectory()) {
        filepath += '/index.html';
        filepath = path.normalize(filepath);
      }
      fs.readFile(filepath, "binary", function (err, data) {
        if (err) {
          res.writeHead(500, {
            'Content-Type': 'text/plain'
          });
          res.write('500 File read error \n');
          res.end();
        } else {
          var contentType = mime.lookup(filepath);
          res.writeHead(200, {
            'Content-Type': contentType
          });
          res.write(data, 'binary');
          res.end();
        }
      });
    }
  });
  //sockets part starts here
  io.sockets.on('connection', function (socket) {
    socket.on('test', function (data) {
      console.log('i got something');
      console.log(data.print);
    });
  });
});
server.listen(3000);
server.on('error', function (e) {
  console.log(e);
});
console.log('Server listening on Port 3000');

这里的问题是,您告诉 Socket.IO 侦听尚不存在的服务器,从而导致EACCES因此不提供客户端文件。这就是你正在做的:

// the HTTP server doesn't exist yet
var io = require('socket.io').listen(server);
var server = http.createServer();

如果您在服务器端错误控制台中看到,您会得到以下信息:

info: socket.io started
warn: error raised: Error: listen EACCES

要解决此问题,请将侦听函数移至创建服务器之后:

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

一旦 Socket.IO 正确监听,它会自动将客户端文件提供给/socket.io/socket.io.js。您不需要手动查找或提供它。

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

在客户端上找不到 socket.io.js 的相关文章

随机推荐

  • 从照片 URL(而不是输入文件字段)将照片上传到用户个人资料

    我已经完成了许多文件上传示例 但还没有找到强制用户发布照片的方法 此示例显示用户如何从计算机上传照片 http developers facebook com blog post 498 我想使用此方法 但将 文件输入 浏览 字段替换为图像
  • 条件是否会产生每个对象有多个等待集的效果?

    我正在阅读有关条件的内容java util concurrent locks Condition 条件将对象监视器方法 wait notify 和 notifyAll 分解为不同的对象 以达到具有多个对象的效果 每个对象的等待集 通过将它们
  • 如何使用PowerShell重建Windows搜索索引?

    由于我们没有找到任何解决方案来解决不断增长的 Windows 搜索数据库 即使在 Microsoft 的帮助下 我们决定在数据库达到特定限制时通过 SCOM 定期重建数据库 这与 Windows Server 2012 R2 相关 因此我需
  • 使用plot3在MATLAB中绘制圆锥体

    我正在寻找一种在 3D 冲浪图中的特定位置绘制圆锥体的方法 圆锥体是否也可以具有 50 的透明度 现在我正在使用绘制一个基本的 3D 环境surf功能 我正在尝试使用该功能plot3在特定位置绘制特定尺寸的圆锥体 以下代码通过将圆柱体捏在
  • WPF字典绑定失败很慢

    我有大部分Label我的应用程序中的对象已绑定 以便可以从网络服务中替换它们 我将替换内容存储在字典中 替换内容根据为应用程序加载的客户端而有所不同 我遇到的问题是 大多数时候我不替换标签 并且绑定失败会引发非常慢的异常 这是一个例子 请注
  • 如何使用WWDC 2012“Core Data with iCloud”第227期的示例代码?

    我花了几周的时间来解决这个问题 所以请帮我解决这个问题 我从苹果 WWDC 2012 下载了带有 iCloud 的核心数据示例代码 并尝试将其用于我的应用程序 但没有任何效果 当然 我稍微改变了一些代码 但我不知道我到底应该做什么 也找不到
  • 自定义 JQuery 克隆行属性

    我一直在研究动态添加表行的 JQuery 方法 一个优秀的线程是 如何在 jquery 中使用克隆复制表行并为控件创建新的唯一 ID 最后一个例子就是我在这篇文章中所针对的例子 我有一把小提琴举一个我正在尝试做的事情的例子 这个小提琴还不能
  • 您的应用包含非公开 API 使用

    我正在尝试在 App Store 上提交我的应用程序 但收到以下消息 Your app contains non public API usage Please review the errors correct them and resu
  • 使用 commons-email-1.3 发送电子邮件时出错

    在使用 commons email 1 3 发送电子邮件时 我收到以下错误 我已经下载了外部 jar 并将其添加到项目中 请帮我解决这个问题 package mypkg import org apache commons mail Defa
  • 具有滑动功能的 3 级可扩展列表视图

    我正在创建 3 级可扩展列表 并在第三级具有滑动功能 当使用缓存时 我在第三级 swipelistview 中遇到滑动功能的问题 对于滑动 我使用 47deg android swipelistview https github com 4
  • 从 XML feed 更新 MySQL 记录的最佳方法

    我正在考虑最好的方法 如何从 XML feed 更新表 MySQL 中的记录 我有数据库 该数据库包含来自多个销售门户的每日报价 所以现在 大约午夜我正在从表中删除所有记录 因为我认为从表中删除所有内容比将当前数据与插入的数据进行比较更好
  • Google Cloud ML FAILED_PRECONDITION

    我正在尝试使用 Google Cloud ML 托管 Tensorflow 模型并获取预测 我有一个预训练模型 已上传到云端 并在 Cloud ML 控制台中创建了模型和版本 我按照说明进行操作从这里准备我的数据以请求在线预测 对于 Pyt
  • 如果函数执行时间太长,iPhone 会超时吗?

    我有一个函数 可以使用 cocoa 的 Url 对象从网络获取外部资源 它在模拟器上工作正常 但偶尔在设备本身上失败 这是一个谷歌查询 所以资源显然确实存在 这让我相信硬件上存在一些内部超时障碍 但没有读到这样的障碍是否存在 还有其他人遇到
  • 动态显示和隐藏 JFrame 装饰

    我正在开发一个基于 Java Swing 的应用程序 具有不同的视角 对于 主菜单 透视图 我不希望装饰窗口 JFrame 而在其他透视图中 我确实希望装饰窗口 换句话说 我需要动态更改装饰属性 我尝试过使用setUndecorated f
  • 如何将行的值换行到R中特定字符处的新行

    我有一个包含值的示例数据框 data lt structure list A c Date Values B c 2023 04 03 Heat Capacity nSpecific Heat Capacity nHeat Index ro
  • JSON、CURL 和 Google 的地理定位

    我正在尝试使用谷歌的地理定位 浏览器定位 服务 到目前为止 我认为当我尝试类似的事情时 https maps googleapis com maps api browserlocation json browser firefox sens
  • 如何在 Microsoft Azure 网站上更改 jvm 参数

    我在Azure上创建了一个基于java的网站 并在使用 自定义创建 时选择tomcat作为容器 然后准备好了一个空网站 我可以使用ftp上传WAR文件 但无法触及tomcat文件 我需要更改 JVM 的堆大小 该怎么做 请参见http az
  • 致命错误:调用未定义的函数 mcrypt_get_block_size()

    我正在将我的网站上传到服务器 并且上传成功 之后 当我运行时 它给了我这个错误 致命错误 调用未定义的函数 mcrypt get block size 我也检查我的PHP我的服务器上的版本是5 3 14 我不知道该如何处理这个问题 我使用这
  • 如何通过Javascript与Flash交互?

    目前有一个非常基本的 Flash 项目 它连接到 rtmp 服务器并从网络摄像头传输视频和音频 它从具有特定名称的用户创建流 此外 在同一项目中 还有其他实体可以流式传输的流名称的输入 因此 您可以通过 Flash 进行类似于 Skype
  • 在客户端上找不到 socket.io.js

    这个问题之前已经被问过 但在之前的回复中没有找到任何解决方案 Socket IO 给我带来了两个问题 服务器端给出了此错误 错误 监听 EACCES 我阅读了堆栈溢出并通过发出 sudo 命令来启动服务器来解决此问题 现在客户端似乎没有按照