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' } }) });