IOAcknowledge方法不适用于Android中的SocketIO?

Him*_*ori 6 java android node.js socket.io

我正在使用socketio.jar来建立客户端和服务器之间的连接.

即从我的Android设备(客户端)到节点服务器.

因为我能够成功连接,发送和接收消息到该服务器.

问题是,为什么我不得到任何确认发射的消息到服务器之后从插座.有一个callBack接口IOAcknowledge作为参数,它永远不会为我工作/调用.

 socket.emit( "sendMessage", new IOAcknowledge() {

	@Override
	public void ack(Object... arg0) {

		System.out.println("sendMessage IOAcknowledge" + arg0.toString());
	}

 }, "Hi!! how are you");
Run Code Online (Sandbox Code Playgroud)

有没有人知道IOAcknowledge何时或如何工作的解决方案?

编辑: 我正在使用的套接字库的文档链接.

官方 和 Github

rom*_*4ek 3

看来您忘记了在服务器端代码上调用回调:

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!');
   });
});
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看此线程或文档

编辑:

问题还在于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());
    }
});
Run Code Online (Sandbox Code Playgroud)