抽象的Spring WebSockets实现

时间:2018-06-20 13:45:19

标签: spring spring-websocket

我正在开发一些产品组件。我希望此组件将在将来的某些潜在项目中使用。该组件的一部分是有关某些事件的WebSocket通知,该事件以广播的形式向所有连接的客户端广播。

我发布了一个事件:

@Autowired private final ApplicationEventPublisher publisher;
...
publisher.publishEvent(new MyApplicationEvent(mySource));

然后有侦听器来处理这些事件:

class MyApplicationEventHandler {

    @Autowired private final SimpMessagingTemplate template;

    @EventListener public void processEvent(final MyApplicationEvent event) {
        //... create websocket notification
        template.convertAndSend(notification);
    }
}

这就是我所需要的。 我创建了简单的配置:

@Configuration
@EnableWebSocketMessageBroker
@Profile("simple-message-broker")
public class MyNotificationConfiguration extends AbstractWebSocketMessageBrokerConfigurer {

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

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

我希望在将来的应用程序中将使用该组件的其他配置覆盖它。

我不知道它将是什么应用程序。我不知道它将在什么环境上运行。

我需要知道的是,如果此基本设置还可以,或者是否需要做其他事情来准备组件以备将来使用-例如使用某些服务接口和空的默认实现为集群环境做准备,以使项目可以使用自己的实现对其进行扩展。

我是否需要做其他事情以使用某些MQ或分布式缓存为群集环境准备WebSocket广播?还是以最简单的方式就足够了?

0 个答案:

没有答案