SpringWebSocket中的Direct、Group和Channel需要多少端点和主题?

SpringWebSocket中的Direct、Group和Channel需要多少端点和主题?,spring,spring-boot,websocket,spring-websocket,spring-messaging,Spring,Spring Boot,Websocket,Spring Websocket,Spring Messaging,我想编写一个应用程序,在用户之间进行消息传递, 在用户之间发送的消息有3种类型 直接的 频道:只需从管理员发送 团体 我的应用程序将在RDBMS中保存消息。当新消息发送和接收用户联机时,我的应用程序将通知用户收到新消息,我决定使用Spring Websocket和Stomp编写我的应用程序。我的应用程序使用Spring security和,我希望在组中显示联机用户,并直接为其他成员显示 我的问题是知道我需要多少端点和代理?我怎么能做到呢 更新: 我的应用程序类似于gitter和slack,当用户

我想编写一个应用程序,在用户之间进行消息传递, 在用户之间发送的消息有3种类型

  • 直接的
  • 频道:只需从管理员发送
  • 团体
  • 我的应用程序将在RDBMS中保存消息。当新消息发送和接收用户联机时,我的应用程序将通知用户收到新消息,我决定使用Spring Websocket和Stomp编写我的应用程序。我的应用程序使用Spring security和,我希望在组中显示联机用户,并直接为其他成员显示 我的问题是知道我需要多少端点和代理?我怎么能做到呢

    更新:

    我的应用程序类似于gitter和slack,当用户登录消息可能从direct、group或channel接收时。当我在用户和组或频道之间切换时,我将从上次取消订阅,并订阅我聊天的用户或组。我不知道订阅和取消订阅是正确的还是一次订阅全部。 这个用法正确与否

    chatSocket.subscribe("/user/exchange/direct/chat.message/{userId}", function(message) {});
    
    
    chatSocket.subscribe("/topic/group/chat.message/{groupId}", function(message) {});
    
    • 对于直接消息,请使用用户目的地
    • 对于只能由管理员发送的消息,限制发布给具有该角色的用户,并允许其他用户订阅(使用Spring Security)
    • 如果要广播消息,请使用代理目的地(如果需要添加一些登录名,请使用应用目的地)
    存储消息的一个选项可以是添加通道拦截器。当websocket连接建立时,让用户订阅应用程序目的地,并发送他在线时发送的存储消息


    这个示例应用程序可以给您一些提示:

    我的一个问题是订阅多少,我更新了我的问题