未为通配符主题路径调用 MissingTopicHandler
MissingTopicHandler not called for wildcard topic path
我有一个按需创建主题的控制客户端(当客户端订阅不存在的主题时,它会被创建)。当客户请求不存在的主题时,我使用 MissingTopicHandler
来获得通知,然后我创建它。
当我的客户订阅一个具体的主题路径(例如 >myTopic
)时,这工作正常,但当客户订阅一个 wildcard topic path(例如 ?myTopic//
)时,这就不行了。
我该怎么做?
当您订阅 topic selector as opposed to a topic path, the MissingTopicHandler 时,除非您的通配符主题路径中使用的具体主题丢失,否则不会被触发。
对于您的示例,如果客户端订阅 ?myTopic//
,并且主题 myTopic
存在,则不会发送通知。但是,如果该主题不存在,则会为该主题发送主题丢失通知(如果该主题路径上有 MissingTopicHandler)。
对于主题选择器的订阅,主题 myTopic
的子项没有丢失主题事件通知,因为没有尝试订阅实际主题,而是一个请求,当子级下面添加了主题 myTopic
客户订阅了它们。
注意:您无法收到订阅通配符主题选择器的通知,因为匹配选择器的可能性是无限的。
我有一个按需创建主题的控制客户端(当客户端订阅不存在的主题时,它会被创建)。当客户请求不存在的主题时,我使用 MissingTopicHandler
来获得通知,然后我创建它。
当我的客户订阅一个具体的主题路径(例如 >myTopic
)时,这工作正常,但当客户订阅一个 wildcard topic path(例如 ?myTopic//
)时,这就不行了。
我该怎么做?
当您订阅 topic selector as opposed to a topic path, the MissingTopicHandler 时,除非您的通配符主题路径中使用的具体主题丢失,否则不会被触发。
对于您的示例,如果客户端订阅 ?myTopic//
,并且主题 myTopic
存在,则不会发送通知。但是,如果该主题不存在,则会为该主题发送主题丢失通知(如果该主题路径上有 MissingTopicHandler)。
对于主题选择器的订阅,主题 myTopic
的子项没有丢失主题事件通知,因为没有尝试订阅实际主题,而是一个请求,当子级下面添加了主题 myTopic
客户订阅了它们。
注意:您无法收到订阅通配符主题选择器的通知,因为匹配选择器的可能性是无限的。