我可以在@OnOpen
类的@ServletEndpoint
方法中获取远程IP地址吗?
我尝试按照Accessing HttpSession from HttpServletRequest in a Web Socket @SocketEndpoint进行操作,但与Websocket - httpSession returns null一样,它不起作用。
无论如何我只需要客户端的IP地址。
答案 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