Я создал этот проект веб-дизайна Spring Websocket, и он работает очень хорошо. Я расскажу об этом примере в своем проекте. Там у меня есть требование, чтобы (chat-) группы могли динамически создаваться или удаляться/уничтожаться.WebSocket динамически добавляет и удаляет конечные точки
В моем WebsocketConfig- конечных точек класса может быть добавлен статический:
registry.addEndpoint("/hello").withSockJS(); (also see below)
Есть ли возможность добавить оконечные динамически? Мой UseCase является то, что у меня есть компании и сотрудников, которые принадлежат к одной или нескольким компаниям:
n m (m:n relation)
< компания --------> Сотрудники
и компании могут быть созданы динамически (нажав кнопку «создать»). Затем в компанию могут быть добавлены сотрудники, зарегистрированные ранее. Таким образом, это означает, что если компания создана (и к компании добавляется минимум 2 сотрудника), то следует добавить конечную точку.
Я был бы рад за любой полезный ответ в этом направлении. Спасибо большое!
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
// Prefix for messages FROM server TO client
config.enableSimpleBroker("/topic");
// Prefix for messages FROM client TO server
config.setApplicationDestinationPrefixes("/app");
// /app wird beim client - sendName verwendet: stompClient.send("/app/hello", {}, JSON.stringify({ 'name': name
// }));
}
@Override
public void registerStompEndpoints(final StompEndpointRegistry registry) {
registry.addEndpoint("/hello").withSockJS();
}
}
[Редактировать] Отправить сообщение для более чем одного клиента, но не ко всем. Это мой текущий код ниже. Отправить всем с одинаковым id отлично работает, но я не знаю, как отправить сообщение, например. 4 клиента. Спасибо за помощь!
@MessageMapping("/chat/{institutionId}")
public void greeting(@DestinationVariable String institutionId, final GreetingHelloMessage message) throws Exception {
final Greeting greeting = new Greeting(institutionId, "Hello " + institutionId + " - " + message.getName());
simpMessagingTemplate.convertAndSend("/topic/chat/" + institutionId, greeting);
}
Я узнал это: [введите описание ссылки здесь] [1] [1]: http://stackoverflow.com/questions/21192091/dynamic-message-mapping- для-WebSockets в пружине-4 – quma