라우팅 및 태그 식

태그 식을 사용하면 Notification Hubs를 통해 푸시 알림을 보내는 경우에 특정한 디바이스 집합, 보다 구체적으로는 등록을 대상으로 지정할 수 있습니다.

특정 등록을 대상으로 지정

특정 등록을 대상으로 지정하려면 등록을 태그와 연결한 다음 해당 태그를 대상으로 지정해야 합니다. 등록 관리의 설명처럼, 푸시 알림을 받으려면 앱은 디바이스 핸들을 알림 허브에 등록해야 합니다. 알림 허브에 등록이 생성되면, 애플리케이션 백 엔드는 등록에 푸시 알림을 보낼 수 있습니다.

애플리케이션 백 엔드는 다음과 같은 방식으로 등록이 특정 알림을 대상으로 지정하도록 선택할 수 있습니다.

  1. 브로드캐스트: 알림 허브 내의 모든 등록이 알림을 수신합니다.

  2. 태그: 지정된 태그를 포함하는 모든 등록이 알림을 수신합니다.

  3. 태그 식: 등록의 태그 집합이 지정된 식과 일치하는 모든 등록이 알림을 수신합니다.

참고

Windows 스토어 관련 알림과 같은 플랫폼별 페이로드를 보낼 때는 해당 특정 플랫폼의 등록만 알림을 받습니다. 템플릿 알림을 보내면 템플릿을 지정하는 등록만 대상으로 지정됩니다. 자세한 내용은 등록 관리를 참조하세요.

태그

태그에는 영숫자 및 영숫자가 아닌 문자(‘_’, ‘@’, ‘#’, ‘.’, ‘:’, ‘-’)를 포함하는 모든 문자열을 최대 120자까지 사용할 수 있습니다. 다음 예제는 특정 음악 그룹에 대한 토스트 알림을 받을 수 있는 애플리케이션을 보여줍니다. 이 시나리오에서 알림을 라우팅하는 간단한 방법은 등록에 대해 아래 그림처럼 다양한 밴드를 나타내는 태그로 레이블을 붙이는 것입니다.

Tag Expressions

이 그림에서 Beatles 태그가 지정된 메시지는 Beatles 태그로 등록된 태블릿에만 전송됩니다.

태그에 대한 등록을 생성하는 내용은 등록 관리를 참조하세요.

SDK에서 Microsoft.ServiceBus.Notifications.NotificationHubClient 클래스의 알림 보내기 메서드를 사용하여 태그에 알림을 보낼 수 있습니다. Node.js 또는 푸시 알림 REST API를 사용할 수도 있습니다.

다음 예제를 살펴보세요.

await hub.SendWindowsNativeNotificationAsync(wnsToast, "tag");
notificationHubService.wns.sendToastText01('tag', {
            text1: 'Hello World!'
        }, callback);

태그를 미리 프로비전하지 않아도 되며 특정 앱과 관련된 다양한 개념을 참조할 수 있습니다. 예를 들어, 이 예제 애플리케이션 사용자는 밴드에 대한 댓글을 추가할 수 있고 자신이 좋아하는 밴드에 대한 댓글뿐만 아니라 친구가 추가하는(어떤 밴드에 관한 댓글이든 상관없이) 댓글에 대해서도 토스트를 수신하고자 합니다. 다음 그림은 이러한 시나리오의 예를 보여줍니다.

Tag Expressions

이 그림에서 Alice는 Beatles에 대한 최신 소식에 흥미가 있고, Bob은 Wailers에 대한 최신 소식에 흥미가 있습니다. Bob은 Charlie의 댓글에도 흥미가 있으며, Charlie는 Wailers에 흥미가 있습니다. Beatles에 대한 Charlie의 댓글에 대해 알림이 전송되면 Alice와 Bob이 알림을 수신합니다.

중요

"band_Beatles" 또는 "follows_Charlie"와 같이 태그에 여러 관심 항목을 인코딩할 수는 있지만, 태그는 값을 포함하는 속성이 아니라 단순한 문자열입니다. 등록은 특정 태그의 존재 또는 부재와만 일치 여부가 확인됩니다.

태그를 사용하여 흥미가 있는 그룹에 알림을 보내는 방법에 대한 단계별 전체 자습서는 속보를 참조하세요.

참고

위의 예제에서는 두 개의 알림을 보내는 것이 아니라 두 태그에 하나의 알림을 보내야 합니다(태그 배열을 제공하거나 OR이 포함된 태그 식을 사용함). 개별 태그에 알림 두 개를 보내면 두 태그가 모두 포함된 등록에 대해 알림이 중복 수신되지만 태그 식을 사용하는 경우에는 알림이 중복 수신되지 않습니다.

태그를 통해 사용자를 대상으로 지정

태그를 사용하는 또 다른 방법은 특정 사용자의 모든 디바이스를 식별하는 것입니다. 등록에 대해 다음 그림과 같이 사용자 ID를 포함하는 태그를 지정할 수 있습니다.

Tag Expressions

이 그림에서 uid:Alice 태그가 지정된 메시지는 uid:Alice 태그가 지정된 모든 등록, 즉 Alice의 모든 장치로 전송됩니다.

태그 식

알림이 단일 태그가 아니라 태그에 대한 부울 식으로 식별되는 등록 집합을 대상으로 지정해야 하는 경우가 있습니다.

보스턴에 있는 모든 사람에게 Red Sox와 Cardinals의 경기에 대해 미리 알림을 보내는 스포츠 애플리케이션을 생각해 보겠습니다. 클라이언트 앱이 팀과 지역 관심사에 대한 태그를 등록하면, 알림은 Red Sox 또는 Cardinals에 관심이 있는 보스턴의 모든 사람을 대상으로 하게 됩니다. 이 조건은 다음과 같은 부울 식으로 표현될 수 있습니다.

(follows_RedSox || follows_Cardinals) && location_Boston

Tag Expressions

태그 식은 AND(), OR(||) 및 NOT(&&!)과 같은 모든 부울 연산자를 포함할 수 있습니다. 괄호를 포함할 수도 있습니다. 태그 식은 OR만 포함하는 경우에 태그가 20개로 제한됩니다. 그렇지 않으면 태그가 6개로 제한됩니다.

SDK에서 Microsoft.ServiceBus.Notifications.NotificationHubClient 클래스의 알림 보내기 메서드를 사용하여 태그 식에 알림을 보낼 수 있습니다. Node.js 또는 푸시 알림 REST API를 사용할 수도 있습니다. 다음 예제를 살펴보세요.

await hub.SendWindowsNativeNotificationAsync(wnsToast, "(tagA && !tagB)");
notificationHubService.wns.sendToastText01('(tagA && !tagB)', {
            text1: 'Hello World!'
        }, callback);

참고 항목

기타 리소스

API 참조
속보 자습서
사용자에게 알림 보내기 자습서