Java Socket.io 具有 socket.io 护照服务器身份验证的客户端
Java Socket.io client with socket.io passport server authentication
我正在使用 https://github.com/nkzawa/socket.io-client.java 库,它可以工作。我的问题是我的服务器是 运行 socket.io 通行证并且需要身份验证。有谁知道如何使用 socket.io-client.java 库对我的客户端进行身份验证?提前致谢。
这是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");
}
});
}
});
我正在使用 https://github.com/nkzawa/socket.io-client.java 库,它可以工作。我的问题是我的服务器是 运行 socket.io 通行证并且需要身份验证。有谁知道如何使用 socket.io-client.java 库对我的客户端进行身份验证?提前致谢。
这是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");
}
});
}
});