正如标题所述,可以这么说,您如何获得连接的详细信息。有没有办法通过WebSocketSession获得它?我觉得我在想什么...
我需要一种方法来禁止不良用户的ip地址,而且我想在地图上显示所有在线用户(例如地图上的点)。以后我不需要帮助,而在获得客户的IP地址时也需要帮助。
我正在使用Spring的WebFlux WebSocket。
编辑:我创建了一个功能请求:https://jira.spring.io/browse/SWF-1728
答案 0 :(得分:1)
基于Servlet的WebSocketSession
对象确实提供了该信息。反应性风味似乎没有这种作用。
您应该创建一个Spring Framework issue to request this as an enhancement。
答案 1 :(得分:0)
WebSocketSession有一个名为getRemoteAddress()的方法,您可以使用其任何实现来获取远程地址。
答案 2 :(得分:0)
例如,您可以使用HttpServletRequest查找ip地址
String remoteHost = request.getRemoteHost();
String remoteAddr = request.getRemoteAddr();
if (remoteAddr.equals("0:0:0:0:0:0:0:1")) {
InetAddress localip = java.net.InetAddress.getLocalHost();
remoteAddr = localip.getHostAddress();
remoteHost = localip.getHostName();
}
答案 3 :(得分:0)
我做到了
public Mono<ServerResponse> hello(ServerRequest request) {
String remoteAddr = request.remoteAddress().get().getAddress().getHostAddress());
return null;
}