欢迎来到socket.io。只有消息

时间:2011-07-29 04:04:06

标签: javascript node.js io socket.io

我正在使用socket.io和nodejs创建我的第一个应用程序,就像socket.io官方网站所说的那样,但是我在运行节点server.js后在html上看到的唯一一件事是“欢迎来到socket.io”。我怎样才能解决这个问题?或者为什么会这样?

代码如下:

index.html

<script src="http://my.page/node_modules/socket.io/lib/socket.io.js"></script>
<script>
  var socket = io.connect('http://abogados.pages/');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });

</script>

server.js

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

我真的很感激任何答案,因为如果没有,我不能从socket.io开始!

2 个答案:

答案 0 :(得分:10)

欢迎来到socket.io!

1.您应该像这样添加socket.io js文件,

<script src="/socket.io/socket.io.js"></script>

您无需处理实际文件。 socket.io将关注此问题

  1. Hello world将记录在您的浏览器控制台中,而不是在您的文档中。使用Firebug或dev工具检查出来。

  2. 要自己做一些事情,从浏览器发出事件,然后使用socket.on('your event', function(){})和console.log从客户端收到的数据。

  3. 我也是node和socket.io的新手! :)

答案 1 :(得分:1)

这将完美运作!!

<强>的index.html

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
  //socket.emit('my other event', { my: 'data' }); // Line A
  });
  socket.emit('my other event', { my: 'data' });  //Line B
</script>

<强> server.js

var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

也许,用A行替换B行就可以了。不知道为什么socket.io没有检查他们的例子。就是这样,因为socket.emit()是独立调用而且不会以某种方式触发到期对于服务器的新事件。尚未知道,但我能够获得所需的输出。