用socket.io发送确认,说我的函数是未定义的

时间:2014-02-19 05:24:14

标签: javascript node.js sockets socket.io

我正在尝试使用http://socket.io/#how-to-use“发送和获取数据(确认)”中定义的socket.io的确认。

我的客户端代码看起来像

sio.emit('ferret', 'tobi', function (data) {
  console.log(data);
});

我的服务器代码是:

socket.on('ferret', function (name, fn) {
  fn('woot');
});

但是我收到的错误是我的节点服务器崩溃了:

fn('woot');
23:13:48 web.1  |         ^
23:13:48 web.1  | TypeError: undefined is not a function

我发现这很奇怪,因为如果我添加:

console.log(name);
console.log(fn);

,名称将记录Tobi,但是因为fn记录未定义的原因。

任何信息都会很棒!

1 个答案:

答案 0 :(得分:0)

如果有人遇到此问题,请确保在客户端上,发射具有作为最后一个参数的确认功能。如果您编写服务器端代码并​​再次重新启动服务器,除非您用新代码刷新了客户端页面,否则它将产生错误。尽管我已经在客户端和服务器上都编写了代码,但是由于没有刷新客户端页面,所以我一直在服务器上收到错误消息。