Jakarta ee 使用ServerEndpoint时获取客户端IP地址
这意味着,它将从本地web上的许多用户那里获得连接。如何获得每个连接的IP地址?我使用JSR356Jakarta ee 使用ServerEndpoint时获取客户端IP地址,jakarta-ee,java-websocket,Jakarta Ee,Java Websocket,这意味着,它将从本地web上的许多用户那里获得连接。如何获得每个连接的IP地址?我使用JSR356 @ServerEndpoint(value = "/ws/example") public class ExampleServlet { private static final AtomicInteger connectionIds = new AtomicInteger(0); private static final Set<ExampleServlet>
@ServerEndpoint(value = "/ws/example")
public class ExampleServlet {
private static final AtomicInteger connectionIds = new AtomicInteger(0);
private static final Set<ExampleServlet> connections = new CopyOnWriteArraySet<>();
private Session session;
@OnOpen
public void start(Session session) {
this.session = session;
connections.add(this);
}
@OnClose
public void end() {
}
@OnMessage
public void incoming(String message) {
}
@OnError
public void onError(Throwable t) throws Throwable {
}
}
@ServerEndpoint(value=“/ws/example”)
公共类示例servlet{
私有静态最终AtomicInteger ConnectionId=新的AtomicInteger(0);
私有静态最终集连接=新CopyOnWriteArraySet();
非公开会议;
@奥诺彭
公共无效开始(会话){
this.session=会话;
连接。添加(此);
}
@一次
公共无效结束(){
}
@OnMessage
公共无效传入(字符串消息){
}
@一个错误
公共无效者(可丢弃的t)抛出可丢弃的{
}
}
这是用于带弹簧的websocket
@凌驾
建立连接后公共无效(WebSocketSession会话)引发异常{
System.out.println(“connectionestablished!”+session.getLocalAddress());}不幸的是,JSR356 Websocket规范没有公开客户端IP地址。解决方案,如何破解这个问题,我在那里找到:它与jsf无关,spring。您可以从session获得它。OP使用的是标准Java EE,而不是第三方spring库。你根本没有回答这个具体的问题。如果您想回答Spring问题,请查找Spring问题。