我有这个套接字服务器:
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文档,这样做不是正确的方法。
那是什么意思,我在做错什么?
答案 0 :(得分:0)
可能的解决方法:
确保您运行npm install
并且没有错误或安装不完整:
在项目目录内,转到./node_modules/socket.io/node_modules/socket.io-client/dist
,然后复制名为socket.io.js
的文件,然后将其放入您的static
或resources
目录之一。
不要忘记将以下行提供给静态文件,现在您应该可以在以下位置浏览它: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