Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee 使用ServerEndpoint时获取客户端IP地址_Jakarta Ee_Java Websocket - Fatal编程技术网

Jakarta ee 使用ServerEndpoint时获取客户端IP地址

Jakarta 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>

这意味着,它将从本地web上的许多用户那里获得连接。如何获得每个连接的IP地址?我使用JSR356

@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问题。