带有socket.io护照服务器身份验证的Java Socket.io客户端

时间:2015-02-01 20:40:42

标签: java socket.io passport.js passport.socketio

我正在使用https://github.com/nkzawa/socket.io-client.java库,它可以正常工作。我的问题是我的服务器正在运行socket.io passport并需要身份验证。有谁知道我如何使用socket.io-client.java库验证我的客户端?提前谢谢。

1 个答案:

答案 0 :(得分:1)

这是根据nkzawa的解决方案

socket.io().on(Manager.EVENT_TRANSPORT, 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, String> headers = (Map<String, String>)args[0];
                // set header
                headers.put("X-SocketIO", "hi");
            }
        }).on(Transport.EVENT_RESPONSE_HEADERS, new Emitter.Listener() 
        {
            @Override
            public void call(Object... args) 
            {
                @SuppressWarnings("unchecked")
                Map<String, String> headers = (Map<String, String>)args[0];
               // get header
                String value = headers.get("X-SocketIO");
            }
        });
    }
});