gpt4 book ai didi

stomp - Spring Websockets STOMP - 获取客户端 IP 地址

转载 作者:行者123 更新时间:2023-12-03 15:58:53 28 4
gpt4 key购买 nike

有没有办法获取STOMP客户端IP地址?我正在拦截入站 channel ,但我看不到任何检查 IP 地址的方法。

任何帮助表示赞赏。

最佳答案

您可以在与 HandshakeInterceptor 握手期间将客户端 IP 设置为 WebSocket session 属性。 :

public class IpHandshakeInterceptor implements HandshakeInterceptor {

public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response,
WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {

// Set ip attribute to WebSocket session
attributes.put("ip", request.getRemoteAddress());

return true;
}

public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response,
WebSocketHandler wsHandler, Exception exception) {
}
}

使用握手拦截器配置您的端点:
@Override
protected void configureStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws").addInterceptors(new IpHandshakeInterceptor()).withSockJS();
}

并使用 header 访问器获取处理程序方法中的属性:
@MessageMapping("/destination")
public void handlerMethod(SimpMessageHeaderAccessor ha) {
String ip = (String) ha.getSessionAttributes().get("ip");
...
}

关于stomp - Spring Websockets STOMP - 获取客户端 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31669927/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com