当前位置: 首页 > 知识库问答 >
问题:

找不到socket.io.js(404)

岳俊雅
2023-03-14

我指的是一个问题,已经被问了很多次,但其他地方发布的解决方案没有解决我的问题ie Socket.io.js找不到。

错误消息为

获取http://127.0.0.1:3000/socket.io/socket.io.js 404

script(src='http://code.jquery.com/jquery.js')
script(src='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js')
script(src='/socket.io/socket.io.js')
script(src='/javascripts/sockets/client.js') // this is in public folder
var express = require('express');
io = require('socket.io');
http = require('http');
app = express();
server = http.createServer(app);
io = io.listen(server);


server.listen(app.get('port'), function(){
   console.log("Express server listening on port " + app.get('port'));
});
app.use(express.static(path.join(__dirname, 'public')));
"express": "~4.13.1",
"jade": "~1.11.0",
"morgan": "~1.6.1",
"serve-favicon": "~2.3.0",
"socket.io": "0.9.10"

一些附加信息:在我的app.js中:我引用了服务器套接字

// set up our socket server
require('./public/javascripts/sockets/server')(io);

'/javascripts/sockets/client.js'是我的客户端套接字:

var socket = io.connect('/');
socket.on('message', function (data) {
    data = JSON.parse(data);
    $('#messages').append('<div class="'+data.type+'">' + data.message +
    '</div>');
});
$(function(){
    $('#send').click(function(){
    var data = {
        message: $('#message').val(),
        type:'userMessage'
    };
    socket.send(JSON.stringify(data));
    $('#message').val('');
});

共有1个答案

百里星纬
2023-03-14

您不应该为此使用socket.io包,因为它主要用于构造socket.io服务器实例。相反,您应该使用socket.io-client,它专门用作客户端套接字。

我建议使用bower而不是npm来安装,因为bower是为前端包管理而设计的。在项目目录中执行以下操作

注意:如果您没有安装bower,则需要在全局范围内安装它npm i-g bower

bower init
bower install --save socket.io-client

server.use(express.static(path.join(__dirname,'bower_components')));

然后改变

脚本(src='/javascripts/sockets/client.js')//它在公用文件夹中

var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = process.env.PORT || 3000;

server.use(express.static(path.join(__dirname, 'public')));
server.use(express.static(path.join(__dirname, 'bower_components')));

server.listen(port, function(){
   console.log('Express server listening on port ' + port);
});
 类似资料:
  • 问题内容: 由于某些原因,我的节点服务器无法提供路由,所以我总是会收到404错误。 我尝试编译不同的节点版本( 当前 版本 为0.6.13,该 版本 也可以在实际运行的服务器上运行 )。 从app.js 尝试调用socket.io.js时,我得到并没有错误。 我从本地主机和端口8000尝试,我使用express框架 这是来自app.js的代码: 问题答案: 请检查您的Express版本。Expre

  • 我的错误: 获取http://***/socket.io/socket.io.js 404(未找到) 本地主机:1未捕获的引用错误:未定义io Index.Jade

  • 我正在尝试使用Karma进行测试,我正在遵循Angulars自己的测试指南。目前我正在使用最基本的测试类,但在运行它时遇到了问题。 测试类别: 当我使用npm test运行它时,在命令提示符中出现以下错误: 我已经检查了它找不到的文件,它存在于错误所述的目录中,所以我不知道该怎么办。

  • 问题内容: 我试图在我的freebsd服务器上运行一个node.js应用程序,但是我无法让socket.io库使用它。我试过包括: 这给出了404错误,并且如果我直接链接到该文件(即它在我的public_html文件夹中的位置),则会收到未定义的错误。 提前致谢 问题答案: 尝试创建另一个包含这一行的node.js应用程序,然后使用node.js运行它 然后,在浏览器中访问,您将获得友好的“欢迎使

  • 问题内容: 我正在尝试将数据流式传输到浏览器。但是,我正在努力将其连接到浏览器。这是我的html: 这是我的app.js的相关部分: 我通过packages.json文件安装了socket.io 0.9.16: 有谁可以帮我离开这里吗?为什么找不到文件? 深入挖掘。为了测试套接字,我将其放在app.js中: 我得到错误: 问题答案: 你可以尝试一下: 我想,您将不得不实例化socket.io服务器

  • 我是一名学习使用jsp和Servlet构建Web应用程序的学生。一个月以来,我的Web应用程序项目一直运行良好,但今天它的行为突然变得奇怪了。当我提交jsp页面时,它无法找到我的servlet。我已经使用servlet注释来映射请求。 以下是我的JSP:- 以下是我的servlet:- 以下是我的控制台日志:-