[英]Java Socket.io client with socket.io passport server authentication
I am using the https://github.com/nkzawa/socket.io-client.java library, and it works. 我正在使用https://github.com/nkzawa/socket.io-client.java库,它可以正常工作。 My issue is that my server is running socket.io passport and requires authentication. 我的问题是我的服务器正在运行socket.io护照,并且需要身份验证。 Does anyone know how I can authenticate my client using the socket.io-client.java library? 有谁知道我如何使用socket.io-client.java库对客户端进行身份验证? Thanks in advance. 提前致谢。
This is the solution according to nkzawa 这是根据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");
}
});
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.