Javascript 从客户端到服务器的SocketIO回调不';t工作(改为空对象)
我在SocketIO上遇到了一个奇怪的问题,在服务器端我发出()这样的消息: 在客户端,我会这样做: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(对象),而不是函数。。。如
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');
}