无法接收SOCKET.IO客户端中的事件

我是socket.io新手,我正在尝试在他们的网站上提到的例子。 我很好,但是当我尝试在服务器端使用io.emit并尝试在客户端接收时会发生问题。

这是我的服务器代码

var io=require("socket.io").listen(8888); io.set('log level',1); io.on('connection',function(socket){ socket.emit('hi'); console.log("Connected"); }); 

和我的客户的代码

 <script src="http://localhost:8888/socket.io/socket.io.js"></script> <script> var socket=io.connect("http://localhost:8888"); socket.set('log_level',1); socket.on('hi',function(){ console.log('received'); }); </script> 

问题是我没有看到在控制台中收到的消息! 答案可能是微不足道的,但我试着尝试,但每次都失败。 请指导….

我在Ubuntu的Firefox。 节点版本:0.8.7

所以你应该在发球方面有这个:

 var io = require('socket.io').listen(88888); io.set('log level',1); io.sockets.on('connection', function (socket) { socket.emit('hi); console.log("Connected"); }); }); 

而你应该在客户端有这个:

 <script src="http://localhost:8888/socket.io/socket.io.js"></script> <script> var socket = io.connect('http://localhost:8888/'); socket.set('log_level',1); socket.on('hi', function () { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script> 

像许多html5function的WebSockets在非web服务器环境中不起作用。 我的意思是,如果您正在使用文件协议访问您的客户端,则不起作用。 你需要有一个HTTP服务器。 我所做的事情很容易,我使用python内置的web服务器。 它做的工作。 只是在你的客户端文件夹中产生这样的:

 python -m SimpleHTTPServer 

然后将浏览器指向端口8000(默认)。

我做了一个锅炉板 socket.io应用程序,你可以克隆,甚至直接推到dotCloud.com
这是一个简单的例子,可以帮助你开始使用socket.io。

在soket.io GitHub页面上查找示例。

你写道: io.on('connection'而不是io.sockets.on('connection'

此代码应该正常工作:

 var io = require('socket.io').listen(8888); io.set('log level', 1); io.sockets.on('connection', function(socket){ socket.emit('hi'); console.log("Connected"); });