Android socket.io 客户端
Android socket.io client
我正在尝试设置 android socket.io 客户端,但我遇到了一些困难。现在我正在使用这个库:https://github.com/nkzawa/socket.io-client.java 并且当我们关闭中间件时一切正常。当它打开时,我需要在连接到服务器时发送 header 但据我所知,这个库不提供这种可能性。那么有人可以针对此问题提出不同的库或分享解决方法吗?
谢谢
我使用这个库有一段时间了,觉得它非常合适。
如果您想发送header,您可以按照下面的示例进行操作;
对于版本 [0.6.0](以前的版本有点不同)
1 - 创建 socket.io 客户端
IO.Options opts = new IO.Options();
socket = IO.socket("http://server_address", opts);
socket.io().on(Manager.EVENT_TRANSPORT, onTransport);
2 - 实施回调处理程序 onTransport
private Emitter.Listener onTransport = new Emitter.Listener() {
@Override
public void call(Object... args) {
Transport transport = (Transport)args[0];
transport.on(Transport.EVENT_REQUEST_HEADERS, new Emitter.Listener() {
@Override
public void call(Object... args) {
@SuppressWarnings("unchecked")
Map<String, List<String>> headers = (Map<String, List<String>>) args[0];
String bearer = "bearer " + session.token;
headers.put("Authorization", Arrays.asList(bearer));
}
}).on(Transport.EVENT_RESPONSE_HEADERS, new Emitter.Listener() {
@Override
public void call(Object... args) {
}
});
}
};
在上面的示例中,我设置了 Authorization
header,但您可以根据需要自由设置。
我正在尝试设置 android socket.io 客户端,但我遇到了一些困难。现在我正在使用这个库:https://github.com/nkzawa/socket.io-client.java 并且当我们关闭中间件时一切正常。当它打开时,我需要在连接到服务器时发送 header 但据我所知,这个库不提供这种可能性。那么有人可以针对此问题提出不同的库或分享解决方法吗?
谢谢
我使用这个库有一段时间了,觉得它非常合适。 如果您想发送header,您可以按照下面的示例进行操作; 对于版本 [0.6.0](以前的版本有点不同)
1 - 创建 socket.io 客户端
IO.Options opts = new IO.Options();
socket = IO.socket("http://server_address", opts);
socket.io().on(Manager.EVENT_TRANSPORT, onTransport);
2 - 实施回调处理程序 onTransport
private Emitter.Listener onTransport = new Emitter.Listener() {
@Override
public void call(Object... args) {
Transport transport = (Transport)args[0];
transport.on(Transport.EVENT_REQUEST_HEADERS, new Emitter.Listener() {
@Override
public void call(Object... args) {
@SuppressWarnings("unchecked")
Map<String, List<String>> headers = (Map<String, List<String>>) args[0];
String bearer = "bearer " + session.token;
headers.put("Authorization", Arrays.asList(bearer));
}
}).on(Transport.EVENT_RESPONSE_HEADERS, new Emitter.Listener() {
@Override
public void call(Object... args) {
}
});
}
};
在上面的示例中,我设置了 Authorization
header,但您可以根据需要自由设置。