其他分享
首页 > 其他分享> > Spring-WebSocket动态添加和删除端点

Spring-WebSocket动态添加和删除端点

作者:互联网

我已经创建了这个Websocket项目Spring Websocket,它的工作真的很好.
我将在我的项目中介绍此示例.我要求(聊天)组可以动态创建或删除/销毁.

在我的WebsocketConfig-类中,可以通过以下方式静态添加端点:

registry.addEndpoint("/hello").withSockJS(); (also see below)

是否有可能动态添加端点?
我的用例是,我拥有属于一个或多个公司的公司和员工:

06001

company <——–> employees

并且可以动态创建公司(通过单击“创建”按钮).然后可以将之前注册的员工添加到公司中.
因此,这意味着如果创建了公司(并且公司中至少增加了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}的结构,则无需为每个聊天使用不同的端点.

标签:spring-websocket,spring
来源: https://codeday.me/bug/20191119/2037858.html