比如我A客户端订阅了 $queue/topic/s/#,B客户端订阅了 $queue/topic/s/#,我A客户端向 /topic/v/1发送了一条消息,消息接受者向 /topic/s/1返回消息,如何客户端A一直收到消息,我目前共享订阅策略是 hash_clientid,达不到这样的效果
总结:怎么可以达到 谁发送的消息谁接收返回消息的效果
比如我A客户端订阅了 $queue/topic/s/#,B客户端订阅了 $queue/topic/s/#,我A客户端向 /topic/v/1发送了一条消息,消息接受者向 /topic/s/1返回消息,如何客户端A一直收到消息,我目前共享订阅策略是 hash_clientid,达不到这样的效果
总结:怎么可以达到 谁发送的消息谁接收返回消息的效果
不行,用上共享订阅,就无法达到这种效果了。
那不用,怎么可以达到这样的效果 除了全都订阅通配符主题广播形式
reply_to
字段,指定响应主题/topic/v/1
时,payload包含reply_to: /topic/reply/clientA
/topic/reply/clientA
/topic/reply/clientA
发送响应/topic/v/{clientid}/request
/topic/s/{clientid}/response
发送消息时设置:
- Response Topic: /response/{clientid}
- Correlation Data: 唯一标识符
客户端订阅: /response/{clientid}
/topic/v/1
,设置:responseTopic: /response/clientA
correlationData: req-001
/response/clientA
发送响应/response/clientA
收到响应我觉得方案 3 最好。