[英]IOAcknowledge method is NOT working for SocketIO in Android?
I am using socketio.jar to establish the connection between Client and Server . 我正在使用socketio.jar来建立客户端和服务器之间的连接。
Ie from my Android device(Client) to a Node server. 即从我的Android设备(客户端)到节点服务器。
As I am successfully able to connect, send and receive messages to that server. 因为我能够成功连接,发送和接收消息到该服务器。
The problem is why I am NOT getting any Acknowledgement from socket after emitting message to the server. 问题是,为什么我不发射消息到服务器后,正从插座任何确认 。 There is a callBack Interface IOAcknowledge as parameter, that never works/invokes for me.
有一个callBack接口IOAcknowledge作为参数,它永远不会为我工作/调用。
socket.emit( "sendMessage", new IOAcknowledge() { @Override public void ack(Object... arg0) { System.out.println("sendMessage IOAcknowledge" + arg0.toString()); } }, "Hi!! how are you");
Does anyone know the solution when or how that IOAcknowledge will work? 有没有人知道IOAcknowledge何时或如何工作的解决方案?
EDIT : Docs link of socket library which i am using. 编辑:我正在使用的套接字库的文档链接。
It seems, that you forgot to invoke the callback on the server-side code: 看来,你忘了在服务器端代码上调用回调:
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!');
});
});
For more information check this thread or docs 有关更多信息,请查看此主题或文档
EDIT: 编辑:
The problem also is that Ack
implementation should come as last parameter of emit
function, so your Java code should look like this: 问题还在于
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());
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.