gpt4 book ai didi

java - 如何限制客户端连接到我的 stomp websocket 处理程序?

转载 作者:行者123 更新时间:2023-11-30 09:03:50 24 4
gpt4 key购买 nike

我需要跟踪在 Spring 4.x 中打开 websocket 到我的 stomp 代理的用户。stomp 端点以通常的方式配置:

@Configuration
@EnableWebSocketMessageBroker
public class StompWebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/stomp");
}

@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app")
.enableSimpleBroker("/queue", "/topic");
}

}

我尝试实现 ApplicationListener 接口(interface)以接收 SessionConnectEvent SessionConnectedEvent,但我无法从这些事件中获取远程主机 ip。

我应该如何获取连接到我的服务的客户端的 ip?

我的目标是限制从同一 ip 到我的 websocket 处理程序的连接数。

最佳答案

实现它的方法是自定义 HandshakeHandler 和重写函数,如 isvalidOrigin。

要使用 XML 配置添加 HandshakeHandler,可以使用如下代码片段:

  <bean id="customHandler" class="my.CustomWebsocketHandshakeHandler"/>

<websocket:message-broker application-destination-prefix="/app">
<websocket:stomp-endpoint path="/Stomp">
<websocket:handshake-handler ref="customHandler"/>
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic,/queue" />
</websocket:message-broker>

不过,我无法使用 Java Config 生成等效的配置。

我将非常感谢有关该主题的帮助

关于java - 如何限制客户端连接到我的 stomp websocket 处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25502278/

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