我一直在玩socket.io(非常新手),我的目标是将数据发布到服务器,进行小型数据库输入并实时向用户返回数据。
我的默认服务器目前是nginx。
我一直在查看socket.io上的示例,但这只是在想要使用node.js来处理所有内容时。
当试图侦听端口3000时,我收到警告:
服务器:
var io = require('socket.io').listen(3000);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
客户:
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:3000');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
我只是想将数据从我的网页推送到节点服务器,但无论何时我在做什么,我都会得到一个404的socket.io/socket.io.js文件。我已经看过这个,其他答案建议更新节点模块的日期版本表达?我已经确保我的服务器上安装了最新版本的node.js,socket.io和express。
有没有明显的地方我在这里出错了,对不起,如果这是一个明显的问题。
答案 0 :(得分:1)
假设您正在运行Linux计算机,则存在两个问题。首先,Nginx已经在端口80上运行。因此,您无法在该端口上运行另一个进程,并且应该在另一个端口上运行Node.js,或者遵循this之类的设置。
另一个问题是您需要root访问权才能使用端口&lt; Linux机器上的1024。未经适当许可,您将收到您所看到的EACCES
错误。
服务器正确绑定后,socket.io.js
文件将不再返回未找到的错误。