【问题标题】:Websockets: Is it possible to add multiple Endpoints using SockJS?Websockets:是否可以使用 SockJS 添加多个端点?
【发布时间】:2014-10-06 06:59:37
【问题描述】:

我想创建 2 个 Web 套接字端点。你能说有可能吗?

这种情况下应该怎么配置?

【问题讨论】:

    标签: websocket sockjs spring-websocket


    【解决方案1】:

    您的问题没有明确说明您使用的是普通 websocket 还是 STOMP 消息传递。

    普通的 websocket API

    如果您使用的是普通的 websocket API,注册表 API 允许您使用add as many websocket handlers as you want

    @Configuration
    @EnableWebSocket
    public class WebSocketConfig implements WebSocketConfigurer {
    
        @Override
        public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
            registry.addHandler(myFirstHandler(), "/myHandler1").withSockJS();
            registry.addHandler(mySecondHandler(), "/myHandler2").withSockJS();
        }
    
        @Bean
        public WebSocketHandler myFirstHandler() {
            return new MyFirstHandler();
        }
    
        @Bean
        public WebSocketHandler mySecondHandler() {
            return new MySecondHandler();
        }
    
    }
    

    STOMP 端点

    如果您正在使用 STOMP 并且想要添加多个 STOMP 端点,那么 API 也允许您这样做(addEndpoint 方法接受 String vararg):

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/foo", "/bar").withSockJS();
    }
    

    【讨论】:

    • 编辑了我的答案 - 如果这不能回答您的问题,请详细说明您的问题。
    • 说我们有两个文本框,每个文本框都是从不同的来源填充的。是否有可能让单个 WebSocketConnection 在用户登录后启动,并有多个用户可以选择的通道/端点订阅?
    • 嗨@BrianClozel,我正在实施帖子和评论模块,我应该创建多少订阅频道,例如addPost、updatePost、addComment、updateComment。我应该为所有人创建单独的订阅频道吗?这不是每个用户,对所有用户可见。
    猜你喜欢
    • 2021-06-25
    • 2016-05-15
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 2016-01-14
    • 2015-11-09
    相关资源
    最近更新 更多