내보내기(0) 인쇄
모두 확장

Service Bus 알림 허브 자습서(Windows 스토어 앱)

note참고
알림 허브는 2013년 1월, 미리 보기 기능으로 Windows Azure Service Bus에서 제공되며 2013년 중반기에는 GA(General Availability)로 전환될 것입니다.

note참고
알림 허브의 기능이 향상되었으므로 2013년 4월 이전에 다운로드한 SDK는 새 알림 허브에서 작동하지 않습니다. 반대로 현재 SDK는 2013년 4월 이전에 만든 알림 허브에서 작동하지 않습니다. 낙관적 동시성 제어 같은 새 기능을 사용하려면 새 알림 허브에 새 SDK를 사용하십시오. 2013년 4월 이전에 만든 알림 허브에 대한 지원은 알림 허브가 GA로 전환될 때 종료됩니다.

Service Bus 알림 허브는 사용자가 다음과 같은 타사 앱 플랫폼을 통해 장치 푸시 알림을 보낼 수 있는 Service Bus 엔터티입니다.

  • Windows 8용 WNS(Windows 푸시 알림 서비스)

  • APNs(Apple 푸시 알림 서비스)

  • GCM(Google Cloud Messaging)

Windows Phone용 MPNS(Microsoft 푸시 알림 서비스)에 대한 지원은 곧 추가될 예정입니다.

이 자습서에서는 WNS를 통해 템플릿 알림을 푸시하는 Windows 스토어 앱(C#으로 작성됨)과 간단한 ASP.NET MVC 앱을 설정하는 방법을 설명합니다.

심화 설명이 포함되어 있는 방법: Service Bus 알림 허브(Windows 스토어 앱) 항목과 Windows Azure Service Bus 알림 허브 개요 항목도 참조할 수 있습니다. iOS 앱에서의 알림 허브 사용 방법에 대한 자세한 내용은 방법: Service Bus 알림 허브(iOS 앱) 항목을 참조하십시오.

선행되어야 할 사항

이 자습서에 설명된 작업을 수행하기 위해서는 다음 사항을 갖추고 있어야 합니다.

  • Windows 스토어 개발 계정

  • Service Bus .NET Preview SDK 이 SDK는 Service Bus 미리 보기 기능이 포함되어 있는 NuGet 패키지로, 여기에서 다운로드할 수 있습니다. 이 패키지는 ServiceBus 미리 보기 기능이며, 새로운 Service Bus 라이브러리(Microsoft.ServiceBus.Preview.dll)가 포함되어 있습니다. 알림 허브를 사용하려면 프로덕션 버전(Microsoft.ServiceBus.dll) 대신 이 라이브러리를 사용해야 합니다.

  • Service Bus WinRT Managed SDK 이 SDK는 여기에서 다운로드할 수 있습니다.

Windows 8 개발 준비

Windows 8용 앱 개발을 시작하려면 Windows 8 PC와 무료로 다운로드 가능한 Visual Studio Express Edition 또는 기타 버전의 Visual Studio 2012가 필요합니다. 첫 번째 Windows 8 프로젝트를 만들고 나면 개발자 계정과 연결되는 무료 개발자 라이선스를 만들라는 메시지가 나타납니다. 이 라이선스를 통해 Windows 8의 현대적인 UI에서 앱을 테스트할 수 있습니다.

Windows 스토어 앱을 Windows 스토어에 게시하고 Microsoft 계정과 WNS와의 ID 통합과 같은 온라인 서비스를 이용하려면 Windows 스토어 개발자 계정도 있어야 합니다. 개발자 계정은 개발자 라이선스와 다릅니다. 개발자 계정은 WNS와 통합되므로 이 자습서를 수행하는 데 필요합니다.

Windows 스토어 개발자 계정에 등록하려면 https://appdev.microsoft.com/StorePortals/en-us/Account/Signup/Start/를 클릭하십시오.

간단한 Windows 스토어 앱 만들기

라이브 타일 및 토스트는 원격 알림이 실제로 표현되는 두 가지 요소입니다. 이러한 요소를 표시하고 알리는 작업은 Windows 셸에서 처리됩니다. 앱에서는 알림이 전송될 것이며 이를 위해 간단한 코드를 추가해야 됨을 Windows에 알립니다. Service Bus 알림 허브 SDK를 사용할 경우에는 코드가 훨씬 더 간단해집니다.

  1. 사용 가능한 템플릿 중 하나를 사용하여 Windows 스토어 앱을 만듭니다. Visual Studio에서 표 형태 앱 템플릿을 사용하여 C# Windows 스토어 프로젝트를 만듭니다. 프로젝트에 MyPushApp 등의 이름을 지정합니다. 알림 허브에서 제공된 것처럼, 뉴스 앱과 같은 푸시 알림을 브로드캐스트하고 태그 대상화하는 데에는 표 형태 앱 템플릿을 사용하여 시작하는 것이 좋습니다.

  2. 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 스토어 메뉴를 클릭합니다. 앱을 스토어에 연결을 클릭하면 이 프로젝트를 Windows 스토어 앱 등록에 연결할 수 있도록 안내하는 마법사 창이 표시됩니다. 이 마법사를 수행하려면 Windows 스토어 개발자 계정이 있어야 합니다. 로그인 단계를 마치면 기존 앱 등록이 페이지에 표시됩니다. 등록된 앱이 없으면 다음과 같이 빈 목록이 다음 페이지에 표시됩니다.

    Windows 스토어 응용 프로그램
  3. 두 경우 모두 개발자 포털에서 등록을 만들 수 있는 링크가 표시됩니다. 앱이 있는 경우 이 링크는 목록의 맨 위에 표시됩니다. 링크를 클릭하여 스토어 대시보드로 이동합니다. 첫 번째 단계로, Windows 스토어에 대한 고유한 이름을 앱에 지정합니다. 다음과 같이 MyPushApp를 사용하지 마십시오. 이 이름은 이미 사용 중인 이름입니다.

    Windows 스토어 응용 프로그램
  4. 앱 이름을 예약하여 저장한 다음에는 서비스 단계로 건너뜁니다.

    Windows 스토어 응용 프로그램
  5. 표시된 대로 Live 서비스 정보 링크를 따라갑니다.

    Windows 스토어 응용 프로그램
  6. 푸시 알림 섹션에서 서비스 인증을 클릭합니다. 두 가지 주요 정보인 SID(Package Security Identifier)와 클라이언트 암호를 복사합니다.

  7. Visual Studio로 되돌아갑니다. 열기 마법사가 자동으로 새로 고쳐져 새 예약이 표시됩니다. 다음 페이지에서 이 줄을 선택하고 다음연결을 클릭합니다. 프로젝트가 Windows 스토어의 등록과 연결되며 앱에서 WNS를 사용할 수 있는 권한이 부여됩니다.

Service Bus 알림 허브 만들기 및 구성

Windows 앱과 해당 Windows 스토어 프로필을 기본적으로 설정한 다음 앱을 새 Service Bus 알림 허브와 연결합니다.

  1. Windows Azure 관리 포털에 로그온합니다. 그런 다음 페이지 왼쪽 하단 구석에 있는 새로 만들기를 선택합니다.

  2. 앱 서비스, Service Bus, 알림 허브로 차례로 이동합니다. 빨리 만들기를 클릭하고 알림 허브의 이름을 입력합니다. 알림 허브가 만들어질 지역과 Service Bus 네임스페이스를 선택합니다. 사용 가능한 네임스페이스가 없으면 지정된 이름의 새 네임스페이스가 만들어집니다.

    Service Bus 알림 허브 만들기
  3. 알림 허브를 만들려면 확인 표시를 클릭합니다. 왼쪽 탐색 창에서 Service Bus 탭을 선택한 후, 새로 만들어진(또는 다시 사용되는) 네임스페이스를 클릭합니다. 새 알림 허브가 목록에 표시됩니다.

    Service Bus 알림 허브
  4. 알림 허브를 클릭합니다. 알림 허브 개요 페이지가 표시됩니다. 맨 위의 구성 탭을 클릭합니다.

    Service Bus 알림 허브
  5. 패키지 SID와 클라이언트 암호를 삽입합니다. 그런 다음 하단의 도구 모음 중 저장을 클릭합니다.

  6. 아직 다른 페이지로 이동하지 마십시오. 알림 허브에서 연결 정보를 클릭하고 두 연결 문자열에 주목합니다. 이 값은 런타임에 알림 허브에 대한 액세스 권한을 구하는 데 사용됩니다. 이 시나리오를 완료함으로써 이러한 연결 문자열을 가져올 수 있습니다.

    Service Bus 알림 허브

앱 연결

표 형태 앱이 Windows 스토어 프로필에 이미 연결되어 있으며 알림 허브와도 연결됩니다. 이제, 이 첫 번째 연습을 통해

먼저 Visual Studio 2012에서 매니페스트에 토스트 기능을 사용하도록 설정합니다.

  1. 솔루션 탐색기에서 Package.appxmanifest를 두 번 클릭합니다.

  2. 알림 가능 속성을 찾아 true로 설정한 다음 저장하고 앱을 닫습니다.

    <VisualElements DisplayName="MyPushApp" Logo="Assets\Logo.png"
                    SmallLogo="Assets\SmallLogo.png" Description="App1"
                    ForegroundText="light" BackgroundColor="#464646"
                    ToastCapable="true">
        <DefaultTile ShowName="allLogos" />
        <SplashScreen Image="Assets\SplashScreen.png" />
    </VisualElements>
    
  3. 특정 앱 인스턴스를 시스템에서 인식할 수 있도록 이 앱이 런타임에 알림 허브에 등록되어야 합니다. 기술적으로는 앱이 WNS와 알림 허브에 각각 등록되지만 Service Bus API에서는 이러한 각각의 단계를 하나의 단계로 합칩니다. 또한 앱 전반의 설정도 다시 시작됩니다. 앱 설정에서는 사용자가 알림을 사용하지 않도록 설정할 수 있어야 합니다. Windows 스토어 지침을 참조하십시오. 이 정보는 이 연습에서 다루지 않습니다.

  4. 푸시 알림 클라이언트를 구현하려면 프로젝트에서 WinRT용 Microsoft.WindowsAzure.Messaging.Managed.dll에 대한 참조를 추가해야 합니다. 여기를 클릭하여 이 Dll을 다운로드하십시오.

  5. Visual Studio 프로젝트에서 참조 노드를 마우스 오른쪽 단추로 클릭한 다음 새 참조를 추가합니다. 대화 상자에서 어셈블리 위치를 찾아 선택합니다.

  6. App.xaml.cs 파일을 엽니다.

  7. 다음 using 문을 추가합니다.

    using Microsoft.WindowsAzure.Messaging;
    using System.Threading.Tasks;
    using Windows.Data.Xml.Dom;
    using Windows.UI.Notifications;
    using Windows.Networking.PushNotifications; 
    
    
  8. 다음과 같이 Service Bus 알림 API를 통해 앱의 NotificationHub 클라이언트 클래스에 대한 참조가 포함될 필드를 App 클래스 내부에 추가합니다.

    sealed partial class App : Application
    {
        NotificationHub notificationHub;
    
    
  9. 생성자의 notificationHub를 초기화합니다. connectionstring을 규칙 DefaultListenSharedAccessSignature와 연결되어 있는, 앞에서 가져온 연결 문자열로 바꿉니다. 그러면 새 등록을 추가하기 위한 액세스 권한을 나타내는 호출 서명을 만들 수 있습니다. 이 작업으로 더 이상의 권한이 부여되지는 않습니다. myhub를 알림 허브의 이름으로 바꿉니다.

    public App()
    {
        notificationHub = new NotificationHub("myhub", "connectionstring");
    
        this.InitializeComponent();
        this.Suspending += OnSuspending;
    }
    
  10. 앱이 시작될 때 알림을 초기화하고 등록을 갱신하기 위한 두 메서드를 추가합니다. 첫 번째 메서드는 InitializeNotificationsAsync입니다. 이 메서드는 WNS channelURI를 다시 가져와서 알림 허브에 등록되도록 합니다.

    async Task InitializeNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        await notificationHub.RegisterNativeAsync(channel.Uri);
    }
    
  11. 초기화 함수를 앱에 추가하려면 다음과 같이 OnLaunched 메서드를 비동기 상태로 만들고 필요한 호출을 추가합니다.

    protected async override void OnLaunched(LaunchActivatedEventArgs args)
    {
        await InitializeNotificationsAsync();
    
  12. 기타 활성화 모드의 등록을 수행하려면 다음과 같이 OnActivated 이벤트 재정의에 동일한 호출을 추가합니다.

    protected async override void OnActivated(IActivatedEventArgs args) {
        base.OnActivated(args);
        await InitializeNotificationsAsync();
    }
    

지금까지 이 절차를 통해 간단한 코드만으로 Windows 스토어 앱에 알림 이벤트를 보낼 수 있는, 고도로 확장 가능하며 사용자 지정 가능한 방식을 추가하는 방법을 살펴보았습니다.

.NET을 사용하여 알림 보내기

알림을 만들고 보내려면 콘솔 앱 또는 웹 앱, 스크립트를 만들거나 모바일 서비스를 사용할 수 있습니다. 모바일 서비스를 사용하여 알림을 보내려면 다음 섹션으로 건너뜁니다. 다른 유사 서비스와는 달리, 클라이언트는 백엔드와 통신할 필요가 없습니다.

Visual Studio Express 2012 for Windows 8을 사용할 경우 콘솔 앱을 만들려면 Visual Studio Express 2012 for Windows Desktop으로 이동합니다. 또는 Visual Studio Express 2012 for Web을 사용하면 간단한 Web Forms 앱을 만들 수 있습니다.

백엔드로 콘솔 앱을 선택하든 웹 앱을 선택하든 다음에 대한 참조를 추가해야 합니다.

  • Microsoft.ServiceBus.Preview.dll

  • System.Runtime.Serialization.dll

ASP.NET Web Forms 앱에서는 default.aspx HTML 페이지를 다음과 같은 텍스트 상자와 단추로 바꿉니다.

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<div>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Send" OnClick="Button1_Click" />
</div>
</asp:Content>

default.aspx.cs 파일에서 Button1_Click 메서드를 추가하고 myhub를 알림 허브의 이름으로 바꿉니다. connectionstring을 앞에서 가져온 DefaultFullSharedAccessSignature의 연결 문자열로 바꿉니다.

protected void Button1_Click(object sender, EventArgs e)
{
    var hubClient = NotificationHubClient.CreateClientFromConnectionString("connectionstring", "myhub");
    var toast = "<toast> <visual> <binding template=\"ToastText01\"> <text id=\"1\">Hello! </text> </binding> </visual> </toast>";
    hubClient.SendWindowsNativeNotificationAsync(toast);
}

앱에서는 NotificationHubClient를 한 번 만든 다음 재사용합니다.

콘솔 앱을 만들 경우에는 다음 코드 조각을 Main() 함수로 사용합니다. 위에 설명된 대로 동일한 방식으로 각각의 항목을 바꿉니다. 따옴표로 묶인 문자열 인수와 함께 앱을 호출하면 특정 알림 메시지를 보낼 수 있습니다. 기본 메시지는 밐ello

static void Main(string[] args)
{
    var hubClient = NotificationHubClient.CreateClientFromConnectionString("connectionstring", "myhub");
    var toast = "<toast> <visual> <binding template=\"ToastText01\"> <text id=\"1\">Hello! </text> </binding> </visual> </toast>";
    hubClient.SendWindowsNativeNotificationAsync(toast);
}

이 두 가지 방식 중 어느 방식으로든 앱이 알림 이벤트를 보낼 수 있습니다. 10,000개의 클라이언트 인스턴스가 등록된 경우 알림 허브는 10,000개의 알림 사본을 만들어 보내며 필요한 오류 처리 및 등록 관리를 수행합니다. 여러 플랫폼 알림을 보내고, 특정 사용자 및 관심 그룹을 대상으로 하는 방법 및 기타 고급 기능에 대한 자세한 내용은 심화 설명이 포함되어 있는 방법: Service Bus 알림 허브(Windows 스토어 앱) 항목 및 Windows Azure Service Bus 알림 허브 개요를 참조하십시오.

모바일 서비스를 사용하여 알림 보내기

모바일 서비스를 사용하면 앱에 대한 백엔드를 빠르게 만들 수 있습니다. 모바일 서비스의 알림 허브를 사용하여 수백 만 개의 장치에 알림을 브로드캐스트하거나 태그를 사용하여 관심 그룹을 손쉽게 만들 수 있습니다.

이 자습서에서는 예약된 작업을 사용하지만 모바일 서비스의 서버 쪽 스크립트에서 알림을 보낼 수 있습니다.

  1. 새 모바일 서비스를 만들거나 사용자 자신의 모바일 서비스에 로그인합니다. 모바일 서비스에 대한 자세한 내용은 여기를 참조하십시오.

  2. 상단 도구 모음에서 Scheduler를 클릭합니다.

    푸시 알림
  3. 새 예약된 작업을 만들고 이름을 삽입한 다음 On demand를 클릭합니다.

    푸시 알림
  4. 작업이 만들어지면 작업 이름을 클릭합니다. 상단 도구 모음에서 Script를 클릭합니다.

  5. 다음 스크립트를 삽입합니다. 자리 표시자를 알림 허브 이름 및 앞에서 가져온 DefaultFullSharedAccessSignature의 연결 문자열로 바꿔야 합니다. 저장을 클릭합니다.

    function PushToHub() {
        var azure = require('azure');
        
        var notificationHubService = azure.createNotificationHubService('<hub name>',
        '<connection string>');
    
        notificationHubService.wns.sendToastText01(
            null,
            {
                text1: 'Hello from Mobile Services!!!'
            },
            function (error) {
                if (!error) {
                    console.warn("Notification successful");
                }
        });
    }
    
  6. 하단 도구 모음에서 Run Once를 클릭합니다.

note참고
모바일 서비스는 Node.js용 Windows Azure SDK를 사용하여 알림 허브에 액세스합니다. 알림 허브와 Node.js용 Windows Azure SDK에 대한 자세한 내용은 여기를 참조하십시오.

앞에서와 같이 10,000개의 클라이언트 인스턴스가 등록된 경우 알림 허브는 10,000개의 알림 사본을 만들어 보내며 필요한 오류 처리 및 등록 관리를 수행합니다. 여러 플랫폼 알림을 보내고, 특정 사용자 및 관심 그룹을 대상으로 하는 방법 및 기타 고급 기능에 대한 자세한 내용은 심화 설명이 포함되어 있는 방법: Service Bus 알림 허브(Windows 스토어 앱) 항목 및 Windows Azure Service Bus 알림 허브 개요를 참조하십시오.

커뮤니티 추가 항목

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft