Javascript 从客户端到服务器的SocketIO回调不';t工作(改为空对象)

Javascript 从客户端到服务器的SocketIO回调不';t工作(改为空对象),javascript,node.js,express,socket.io,Javascript,Node.js,Express,Socket.io,我在SocketIO上遇到了一个奇怪的问题,在服务器端我发出()这样的消息: 在客户端,我会这样做: this.Socket.on(handler, function (datas, callback) { callback('test'); } 我正在等待客户端发送服务器将接收的回调('test')。然后它将输出一个简单的console.log('received callback') 客户端有效地接收服务器请求,但在客户端,回调类型是null(对象),而不是函数。。。如

我在SocketIO上遇到了一个奇怪的问题,在服务器端我发出()这样的消息:

在客户端,我会这样做:

 this.Socket.on(handler, function (datas, callback) {

      callback('test');

 }
我正在等待客户端发送服务器将接收的
回调('test')
。然后它将输出一个简单的
console.log('received callback')

客户端有效地接收服务器请求,但在客户端,回调类型是
null
(对象),而不是
函数
。。。如果我删除服务器端的
函数()
,不等待回调,客户端的类型将是
未定义的
,这意味着当服务器期望回调时,
函数会以某种方式传输,但会在对象(?)中转换

是虫子吗?我做错什么了吗?真奇怪

还有一个细节:我目前正在使用SocketIO 0.9.16


谢谢大家;)

好的,我没有找到通过
emit()
功能获取回调的任何解决方案。所以我做了一个“技巧”,这是一个并行工作的解决方案:

当我
emit()
涉及服务器端的
callback()
时,我通过一个函数生成一个键,并在数据对象的末尾添加一个
{callback:key}
发送数据

我还生成了一个
socket.on(key,function(datas){callback(datas);socket.removeListener(key);}
,它最终将相当于系统中的一个经典回调

这将被前台理解,前台将
发出(键、数据…
作为响应。服务器将接收所有内容,执行这些操作,并删除侦听器

工作起来很有魅力,但一开始就有点复杂。如果能直接与SocketIO一起工作,那就太好了

如果有人卡住了,我希望这有帮助:)

 this.Socket.on(handler, function (datas, callback) {

      callback('test');

 }