토픽 레벨 분리 문자는 토픽에 구조를 도입하는 데 사용되므로 해당 목적으로 토픽 내에 지정될 수 있습니다.
멀티레벨 와일드카드 및 단일 레벨 와일드카드는 subscription에 사용될 수 있지만 메시지의 publisher가 토픽 내에서 이를 사용할 수는 없습니다.
그러나 publisher가 토픽 내의 토픽 레벨에서 다른 문자와 함께 "+" 또는 "#" 문자를 사용하는 경우 이 문자는 와일드카드로 처리되지 않고 특수한 의미를 갖지 않습니다.
토픽 레벨 분리 문자 문자 "/"는 토필 공간에 계층 구조를 제공하는 데 사용됩니다. 응용프로그램에서 토픽 트리 내의 레벨을 분리하려면 이 문자를 사용해야 합니다. Subscriber가 지정한 토픽에 두 개의 와일드카드 문자가 있을 경우 토픽 레벨 분리 문자를 사용하는 것이 중요합니다.
액세스 제어 관리에서 토픽 계층은 중요합니다.
다중 레벨 와일드카드 문자 "#"는 토픽 내의 임의 레벨 수를 일치시키는 데 사용됩니다. 예를 들면, 위의 토픽 트리 예를 보면 "USA/Alaska/#"에 subscribe할 경우 토픽 "USA/Alaska" 및 "USA/Alaska/Juneau"에 대한 메시지가 수신됩니다.
멀티레벨 와일드카드는 0개 이상의 레벨을 나타낼 수 있습니다. 따라서 USA/#은 단 하나의 "USA"와도 일치할 수 있는데, 여기서 #은 0 레벨을 나타냅니다. 이 컨텍스트에서는 분리할 레벨이 없으므로 토픽 레벨 분리 문자는 의미가 없습니다.
멀티레벨 와일드카드는 단독으로 지정하거나 토픽 레벨 분리 문자 바로 옆에만 지정할 수 있습니다. 따라서 "#" 및 "USA/#"는 올바른 토픽이며 "#" 문자가 와일드카드로 처리됩니다. 그러나 "USA#"도 올바른 토픽이지만 "#" 문자가 와일드카드로 간주되지 않고 특수한 의미를 갖지 않습니다. 자세한 정보는 와일드카드가 특수문자로 처리되지 않는 경우를 참조하십시오.
단일 레벨 와일드카드 문자 "+"는 단 하나의 토픽 레벨과 일치합니다. 예를 들어 "USA/+"는 "USA/Alabama"와 일치하지만 "USA/Alabama/Auburn"과는 일치하지 않습니다. 또한 단일 레벨 와일드카드는 단일 레벨인 경우에만 일치하므로 "USA/+"는 "USA"와 일치하지 않습니다.
단일 레벨 와일드카드는 토픽 트리의 어떤 레벨에서도 사용할 수 있으며 멀티레벨 와일드카드와 함께 사용할 수도 있습니다. 단일 레벨 와일드카드는 단독으로 지정될 경우를 제외하고 토픽 레벨 분리 문자 옆에 와야 합니다. 따라서 "+" 및 "USA/+"는 올바른 토픽이며 "+" 문자가 와일드카드로 처리됩니다. 그러나 "USA+"도 올바른 토픽이지만 "+" 문자가 와일드카드로 간주되지 않고 특수한 의미를 갖지 않습니다. 자세한 정보는 와일드카드가 특수문자로 처리되지 않는 경우를 참조하십시오.
와일드카드 문자 "+" 및 "#"이 토픽 레벨에서 다른 문자(자신 포함)와 혼합되는 경우 특수한 의미를 갖지 않습니다.
즉, 토픽 레벨에서 다른 문자와 함께 "+" 또는 "#"를 포함하는 토픽은 publish할 수 있습니다.
예를 들면, 다음 두 개의 토픽을 고려하십시오.
첫 번째 예에서 "+" 및 "#" 문자는 와일드카드로 처리되므로 publish될 토픽에서 올바르지 않습니다.
두 번째 예에서 "+" 및 "#" 문자는 와일드카드로 처리되지 않으므로 이 토픽은 publish 및 subscribe할 수 있습니다.