Java 在Socket.io android客户端v1.4中处理回调
我无法在最新的Java 在Socket.io android客户端v1.4中处理回调,java,android,sockets,callback,socket.io,Java,Android,Sockets,Callback,Socket.io,我无法在最新的Socket.io(v1.4.3)中找到任何关于如何正确处理Ack和事件的文档。所有现有的文章/问题都引用了旧版本,尤其是IOCallback类。但该类在最新版本中不存在 到目前为止,我所能发现的是: 获取套接字的回调事件: mSocket.connect(); mSocket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { @Override public void call(Object... args) {
Socket.io
(v1.4.3)中找到任何关于如何正确处理Ack和事件的文档。所有现有的文章/问题都引用了旧版本,尤其是IOCallback
类。但该类在最新版本中不存在
到目前为止,我所能发现的是:
获取套接字的回调
事件:
mSocket.connect();
mSocket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
//What to do here
}
})
(对象…参数)
。一个小的代码示例会很好emit
事件的回调:
mSocket.emit("payload", jsObj.toString(), new Ack() {
@Override
public void call(Object... args) {
//TODO process ACK
}
});
(Object…args)
嗯。我终于自己弄明白了 如何处理事件连接侦听器的
调用方法上的(对象…参数)
我还没弄明白。但我在看
我可以实施的关于连接的最基本事件集是什么
这三种方法就足够了:
连接:在成功连接时触发。
连接错误:连接错误时触发。
连接超时:在连接超时时触发
资料来源:
我应该如何处理发出确认上的(对象…args)
?
于是我翻阅了文件,发现:
服务器(app.js)
客户
因此,args将是服务器作为参数发送到回调中的任何参数。这就是为上述服务器代码编写Java
客户端代码的方法:
public void call(Object... args) {
String response = (String)args[0]; //this will be woot
}
参数也可以是JSON,也可以是socket.io中的任何参数:
我们发送一个字符串,但您也可以使用org.JSON包来处理JSON数据,甚至还支持二进制数据
不,在Android中,它是这样工作的
有效负载可以是JSONOBJECT/JSONArray
import com.github.nkzawa.socketio.client.Ack
socket.emit("EVENT_NAME", payload, Ack {
val ackData = it[0]
Logger.e(TAG, "ackData $ackData")
})
服务器端
socket.on('EVENT_NAME', (payload, callback) => {
callback("success");
});
干杯。现在继续。@IntelliJAmiya欢迎您改进答案。socket.io上提供的socket.io帮助太少了。
import com.github.nkzawa.socketio.client.Ack
socket.emit("EVENT_NAME", payload, Ack {
val ackData = it[0]
Logger.e(TAG, "ackData $ackData")
})
socket.on('EVENT_NAME', (payload, callback) => {
callback("success");
});