我正在使用 socketio.jar 建立客户端和服务器之间的连接。
IE。从我的Android设备(客户端)到 Node 服务器。
由于我能够成功连接,发送和接收消息到该服务器。
问题是为什么我而不是在向服务器发送消息后从套接字获取任何确认。有一个CallBack接口(interface) IOAcknowledge 作为参数,它对我永不起作用/调用。
socket.emit( "sendMessage", new IOAcknowledge() {
@Override
public void ack(Object... arg0) {
System.out.println("sendMessage IOAcknowledge" + arg0.toString());
}
}, "Hi!! how are you");
有人知道该 IOAcknowledge 何时或如何工作的解决方案吗?
编辑:
我正在使用的套接字库的文档链接。
Official
和
Github
最佳答案
看来,您忘记了在服务器端代码上调用回调:
var io = require('socket.io')(80);
io.on('connection', function (socket) {
socket.on('sendMessage', function (data, callback) {
console.log('Message received:', data);
callback('Message successfully delivered to server!');
});
});
有关更多信息,请检查this线程或docs
编辑:
问题还在于,
Ack
实现应作为emit
函数的最后一个参数作为出现,因此您的Java代码应如下所示:socket.emit("sendMessage", "Hi!! how are you", new Ack() {
@Override
public void call(Object... args) {
System.out.println("sendMessage IOAcknowledge" + args.toString());
}
});