找不到socket.io/socket.io.js

时间:2018-08-20 01:01:42

标签: node.js socket.io

我有这个套接字服务器:

const app = require('express')();
const http = require('http').Server(app);
const io = require('socket.io')(http);

...

app.listen(3001);

Express和套接字版本:

"express": "^4.16.3",
"socket.io": "^2.1.1"

我在客户端称呼它:

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

当我运行套接字服务器并在chrome上打开客户端应用程序时,收到以下消息:“无法加载资源:服务器响应状态为404(未找到)”。

我不打算将socket.io.js复制到公用文件夹,因为根据socket.io文档,这样做不是正确的方法。

那是什么意思,我在做错什么?

1 个答案:

答案 0 :(得分:0)

可能的解决方法:

  • 确保您运行npm install并且没有错误或安装不完整:

  • 在项目目录内,转到./node_modules/socket.io/node_modules/socket.io-client/dist,然后复制名为socket.io.js的文件,然后将其放入您的staticresources目录之一。

不要忘记将以下行提供给静态文件,现在您应该可以在以下位置浏览它:http://localhost:3000/resources/socket.io/socket.io.js

 app.use('/resources', express.static('resources'));

如果未解决,请按照以下步骤操作,这是一个完整的基本示例。如果不起作用,请发表评论:

复制将以下内容粘贴到文件myfile.js

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);




http.listen(3000, function(){
  console.log('listening on *:3000');
});

运行以下命令:

$ npm i express --save 
$ npm i socket.io --save 
$ node myfile.js

打开浏览器http://localhost:3000/socket.io/socket.io.js