Android socket.io客户端

时间:2015-07-19 11:17:41

标签: java android socket.io socket.io-1.0 socket.io-java-client

我正在尝试设置一个android socket.io客户端,但我遇到了一些困难。现在我正在使用这个库:https://github.com/nkzawa/socket.io-client.java当我们关闭中间件时,一切都很顺利。当它打开时,我需要在连接到服务器时发送标题,但据我所知,这个库不提供这种可能性。那么有人可以提出不同的库或共享此问题的解决方法吗?

由于

1 个答案:

答案 0 :(得分:2)

我正在使用这个库一段时间,并发现它非常适合。 如果您想发送标题,可以按照下面的示例进行操作; 对于版本[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标题,但您可以随意设置所需内容。