WebSocket 动态添加和删除端点
WebSocket dynamically add and remove Endpoints
我创建了这个 Websocket 项目 Spring Websocket,它工作得很好。
我将在我的项目中引入这个例子。我要求可以动态创建(聊天)组或 removed/destroyed。
在我的 WebsocketConfig- class 端点可以通过以下方式静态添加:
registry.addEndpoint("/hello").withSockJS(); (also see below)
是否可以动态添加端点?
我的用例是我有属于一家或多家公司的公司和员工:
n m (m:n relation)
company <--------> employees
并且可以动态创建公司(通过单击按钮 "create")。然后可以将之前注册的员工添加到公司。
所以这意味着如果创建了一家公司(并且至少有 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);
}
你应该在路径参数的方向看看。
如果您可以使用 localhost:8080/chat/{GROUP_NAME}.
这样的构造,则无需为每个聊天使用不同的端点
我创建了这个 Websocket 项目 Spring Websocket,它工作得很好。 我将在我的项目中引入这个例子。我要求可以动态创建(聊天)组或 removed/destroyed。
在我的 WebsocketConfig- class 端点可以通过以下方式静态添加:
registry.addEndpoint("/hello").withSockJS(); (also see below)
是否可以动态添加端点? 我的用例是我有属于一家或多家公司的公司和员工:
n m (m:n relation)
company <--------> employees
并且可以动态创建公司(通过单击按钮 "create")。然后可以将之前注册的员工添加到公司。 所以这意味着如果创建了一家公司(并且至少有 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);
}
你应该在路径参数的方向看看。
如果您可以使用 localhost:8080/chat/{GROUP_NAME}.
这样的构造,则无需为每个聊天使用不同的端点