Websocket在连接上获取远程IP

时间:2014-09-18 13:16:44

标签: java websocket

我可以在@OnOpen类的@ServletEndpoint方法中获取远程IP地址吗? 我尝试按照Accessing HttpSession from HttpServletRequest in a Web Socket @SocketEndpoint进行操作,但与Websocket - httpSession returns null一样,它不起作用。

无论如何我只需要客户端的IP地址。

2 个答案:

答案 0 :(得分:3)

JSR-356 Websocket规范不公开客户端IP地址。

您可以尝试在此回复中描述的2个黑客中的一个: JSR-356 WebSockets with Tomcat - How to limit connections within single IP address?

答案 1 :(得分:2)

补充:适用于Jetty实现,它不是一个常见的解决方案。感谢本杰明!

不知道你是否还需要它。我自己直接从套接字会话中获取IP。

@OnOpen
public void onWebSocketConnect(Session session) {
    System.Out.println(session.getUserProperties().get("javax.websocket.endpoint.remoteAddress"))
}

然后我得到/127.0.0.1:57045