对Session.createDurableSubscriber(Topic topic, String name) 中的理解
转载:https://blog.csdn.net/ssuperlg/article/details/79495048
Session.createDurableSubscriber(Topic topic, String name)
是发布-订阅持久化的接收端的设置。
参数 topic -> 与发送端的topic 对应,建立连接
参数 name -> 为订阅者的标识(相当于id)
以一个 离线订阅者重新连接收到消息 的例子来阐述:
比如说 我先启动发送端 Send 发送消息
再启动接收端 Receive
结果发现接收端收不到信息
重新启动 Send 和 Receive
发现收到了
原理:持久订阅时,客户端Sub向服务器注册一个自己身份的ID,当这个客户端Sub处于离线时,Pub 会为这个ID 保存所有发送到主题的消息,当客户端Sub再次连接到Pub时,会根据自己的ID得到所有当自己处于离线时发送到主题的消息。