socket.io如何发送和接收简单数据?

时间:2013-12-01 02:04:02

标签: node.js socket.io

我一直在玩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。

有没有明显的地方我在这里出错了,对不起,如果这是一个明显的问题。

1 个答案:

答案 0 :(得分:1)

假设您正在运行Linux计算机,则存在两个问题。首先,Nginx已经在端口80上运行。因此,您无法在该端口上运行另一个进程,并且应该在另一个端口上运行Node.js,或者遵循this之类的设置。

另一个问题是您需要root访问权才能使用端口&lt; Linux机器上的1024。未经适当许可,您将收到您所看到的EACCES错误。

服务器正确绑定后,socket.io.js文件将不再返回未找到的错误。