我正在使用 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());
    }
});

10-07 22:07