IOAcknowledge 方法不适用于 Android 中的 SocketIO?
Posted
技术标签:
【中文标题】IOAcknowledge 方法不适用于 Android 中的 SocketIO?【英文标题】:IOAcknowledge method is NOT working for SocketIO in Android? 【发布时间】:2016-06-13 17:24:12 【问题描述】:我正在使用 socketio.jar 来建立 Client 和 Server 之间的连接。
即从我的 android 设备(客户端)到节点服务器。
因为我能够成功地连接、发送和接收到该服务器的消息。
问题是为什么我在向服务器发送消息后没有从套接字获得任何确认。有一个回调接口 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
【问题讨论】:
【参考方案1】:您似乎忘记在服务器端代码上调用回调:
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
函数的last 参数,因此您的Java 代码应该如下所示:
socket.emit("sendMessage", "Hi!! how are you", new Ack()
@Override
public void call(Object... args)
System.out.println("sendMessage IOAcknowledge" + args.toString());
);
【讨论】:
感谢您联系@rom4ek。我们在集成您的代码时遇到错误。我的伙伴将在下面提到。 callback('消息成功发送到服务器!'); ^ TypeError: undefined is not a function 我已经在服务器上实现了这个。但我收到上述错误 我使用的 socket.io 库具有与我发布的相同的参数序列。不是按照你的顺序。 你可以查看官方文档s01.de/hgexport/socket.io-java-client,github.com/Gottox/socket.io-java-client 我猜你可能在服务器端和客户端使用不同的版本。你应该试试我认为最新的,检查github.com/socketio/socket.io-client-java和socket.io/blog/native-socket-io-and-android以上是关于IOAcknowledge 方法不适用于 Android 中的 SocketIO?的主要内容,如果未能解决你的问题,请参考以下文章