Socket.io不会触发客户端到服务器的事件

为什么我的服务器不响应客户端发出的事件? 我已经从socket.io网页尝试了一些简单的例子,他们似乎工作正常。

我的目标是每当用户从input框中关注事件,比较服务器上的input值,并将事件发回到客户端时发出事件。

客户端

$('#userEmail').focusout(function() { var value = $('#userEmail').val(); // gets email from the input field console.log(value); // prints to console (it works!) socket.emit('emailFocusOut', { userEmail: value }); // server doesn't respond to this }); 

服务器端

 io.sockets.on 'emailFocusOut', (data) -> console.log(data) 

附加信息

  • 表示3.0rc4
  • socket.io 0.9.10
  • 咖啡脚本1.3.3

如果你需要服务器的一些答案,你的服务器应该发送消息给客户端。
console.log不会做networking答案。

 var io = require('socket.io').listen(80); io.sockets.on('connection', function(socket) { socket.on('emailFocusOut', function(data) { data.receivedAt = Date.now(); socket.emit('emailFocusOutResponse', data); // answer back }); }); 

然后在客户端上,您可以侦听'emailFocusOutResponse'并处理此消息。

您必须将自定义事件放入io.sockets.on函数中。 以下代码将起作用:

 io.sockets.on('connection', function (socket) { socket.on("emailFocusOut", function(data) { console.log(data) // results in: { userEmail: 'awesome' } }) });