Spring,Stomp:如何避免同一用户对同一目标的多个订阅

Spring,Stomp:如何避免同一用户对同一目标的多个订阅,spring,stomp,Spring,Stomp,我在服务器端使用Spring4.2WebSocket和stomp。 客户端使用stomp.js。 我注意到,用户可以多次订阅同一主题目的地。当消息传递到此目的地时,用户也会多次收到它 为什么这是可能的?这方面的用例是什么 我怎样才能避免呢?@SubscribeMapping是在订阅之后调用的,我无法取消它 我建议在使用stomp JS订阅主题/目的地时,使用用户的唯一标识符作为订阅ID。这将防止在每个主题订阅上自动生成订阅ID,因此每个用户会话中每个主题只有一个订阅:函数订阅(目标,accoun

我在服务器端使用Spring4.2WebSocket和stomp。 客户端使用stomp.js。 我注意到,用户可以多次订阅同一主题目的地。当消息传递到此目的地时,用户也会多次收到它

  • 为什么这是可能的?这方面的用例是什么
  • 我怎样才能避免呢?@SubscribeMapping是在订阅之后调用的,我无法取消它

  • 我建议在使用stomp JS订阅主题/目的地时,使用用户的唯一标识符作为订阅ID。这将防止在每个主题订阅上自动生成订阅ID,因此每个用户会话中每个主题只有一个订阅:
    函数订阅(目标,accountId,callbackHandler){if(null!==stompClient){stompClient.subscribe(目标,函数(消息)){callbackHandler(message);},{id:accountId};}}