5

업데이트 : 플롯이 두꺼워집니다. 내 채널 이름을 변경했는데 갑자기 작동합니다 (Microsoft 푸시 알림 서버에서와 동일한 HTTP 응답을 받기 때문에 내 푸시 서비스에 문제가 없었 음을 의미합니다).Windows Phone 7 푸시 알림이 내 전화에서 표시되지 않음

그러나 나에게 이것은 해결책이 아닙니다. 이 테스트를 어떻게 할 수 있습니까? 내 사용자가 그대로 작동하지 않을 때 동일한 응답을 받으면 내 사용자가 푸시 알림을 받고 있는지 어떻게 알 수 있습니까?

[ORIGINAL POST]

내 윈도우 폰 7 장치로 전송 푸시 알림을 얻기 위해 노력했습니다,하지만 난에 대한 답을 찾을 수없는 매우 큰 문제가 발생

. C# 코드부터 시작하겠습니다.

다음 C# 코드를 사용하여 푸시 알림을 설정했습니다. URI 다시

  • 열기를 푸시 알림을받을

    1. (새로운 또는 시작)을 HttpNotificationChannel 찾기
    2. 등록 이벤트 핸들러 :

      private HttpNotificationChannel channel; 
      private static string PUSH_CHANNEL = "MySpecialPushChannel"; 
      private Uri PushUri = null; 
      private bool IsPushRegistered = false; 
      
      public void StartPushSubscription() 
      { 
          try 
          { 
           channel = HttpNotificationChannel.Find(PUSH_CHANNEL); 
          } 
          catch 
          {} 
      
          if (channel != null) 
          {    
           PushUri = channel.ChannelUri; 
           if (!channel.IsShellTileBound) 
            channel.BindToShellTile(); 
          } 
          else 
          { 
           channel = new HttpNotificationChannel(PUSH_CHANNEL); 
           channel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(channel_ChannelUriUpdated); 
           channel.HttpNotificationReceived += new EventHandler<HttpNotificationEventArgs>(channel_HttpNotificationReceived); 
           channel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(channel_ErrorOccurred); 
      
           try 
           { 
            channel.Open(); 
            channel.BindToShellTile(); 
           } 
           catch (Exception err) 
           { 
            channel = null; 
            IsPushRegistered = false; 
            // Code to try again 
           } 
          } 
      } 
      
      void channel_ChannelUriUpdated(object sender, NotificationChannelUriEventArgs e) 
      { 
          PushUri = e.ChannelUri; 
          IsPushRegistered = true; 
      } 
      

      나는 표준 WP7 푸시 구조를 다음과 같은거야 채널

    3. 타일에 바인딩
    4. 채널 처리하기 우리는 우리의 서비스에 t 우리가 푸시 알림을 보낼 행복한 날

    OK ... 지금까지 그렇게 좋네요. 오류가 없다면, 우리는 내 봉사를 잘 보냅니다. 내 앱을 시작 화면에 고정하면 서비스에서 Uri에게 푸시 요청을 보냅니다 (오른쪽 위 모서리에 약간의 푸시 카운트 번호가 표시되도록 카운트 만 전송 함). 나는 다음과 함께 HTTP 200 상태를 다시 얻을 :

    NotificationStatus =

    을 연결

    DeviceConnectionStatus =이>> ... 다음 아무것도

    활동

    SubscriptionStatus =

    >을 수신하지 않으며. 내 앱에 푸시 상태가 표시되지 않습니다. 필자는 이제 내 장치, 에뮬레이터, 다른 장치 및 여러 서버에서이 기능을 시험해 보았습니다. 결과는 항상 동일합니다. 그것이 작동하지 않는다는 사실을 제외하고는 모든 것이 작동하고있는 것처럼 보입니다.

  • +0

    전송되는 알림의 형식을 어떻게 지정합니까? 나는 당신이 사용하고있는 XML과 헤더를보고 싶다. –

    +0

    PHP WP7 푸시 알림 시스템을 사용하고 있습니다. http://phpwindowsphonepush.codeplex.com/ 그런 종류의 논점이 아닙니까? 내 말은 ... Microsoft Push Notification Server에서 성공 메시지를 받으면 밀어 넣기 요청이 성공적이라는 뜻이 아닙니까? 아니면 "당신이 뭔가 잘못 했어요.하지만 어쨌든 성공 메시지를 전하겠습니다"라는 응답이 있습니까? – MatthiasS

    +0

    PHP에 익숙하지 않지만 여기 C# 구현을 살펴보십시오. http://dotnet.dzone.com/articles/sending-tile-push 적어도 이미지를 전달하려고 시도했을 때, 규칙 (80KB/15 초)이면 상태는 수신되지만 알림은 실패합니다. –

    답변

    3

    그러나 나에게 이것은 해결책이 아닙니다. 이 테스트를 어떻게 할 수 있습니까? 내 사용자가 그대로 작동하지 않을 때 동일한 응답을 받으면 내 사용자가 푸시 알림을 받고 있는지 어떻게 알 수 있습니까?

    대답은 할 수 없습니다. WP7이 알림을 처리하는 방법의 한계입니다.

    Tile 및 Toast와 같은 구조적 알림의 경우 Connected/Active/Received/200 응답을 받으면 MPNS가 알림 요청을 수락했음을 알 수 있습니다. 그러나 이것이 유효한 XML 페이로드를 보낸 것은 아닙니다.

    XML을 구문 분석 핸들하는 푸시 클라이언트 인 구성 요소 등

    당신이 잘못된 XML을 보낸 경우

    푸시 알림을 받아 적절한 응용 프로그램에 그들을 거래, 축배를 표시하는 전화에서 실행되는 과정, 당신이 그렇게했다는 표시는 전혀 없습니다. 대부분 동일한 푸시 채널 URI로 알림을 보내려고하면 응답으로 404가 표시됩니다. 분명히 특정 애플리케이션에 대해 유효하지 않은 XML 페이로드를 얻게되면 해당 애플리케이션의 푸시 채널이 닫히고 전체 프로 시저를 다시 수행해야합니다.

    저는 서버 팀과 디버깅하는 동안, 그리고 휴대 전화가 다른 라이브 타일을 표시하도록 시도하면서이를 발견했습니다. 내가 제공 할 수있는 유일한 조언은 XML을 4 배로 확인하는 것입니다.

    유효하지 않은 XML이 포함 된 Toast 알림에 대한 푸시 알림 채널의 오류 이벤트 처리기에 오류가 발생합니다. 응용 프로그램이 활성화되어있는 동안 토스트 알림을 보내고받을 수 있기 때문입니다.


    Microsoft에서 사람이 읽기 경우

    , 는 푸시 알림 시스템에서 가능한 오류 상태에 대한 철저한 문서를 제공하시기 바랍니다. 또한 Tile 알림을위한 이벤트 핸들러가 필요하거나 앱이 포 그라운드에있는 동안 타일 알림을 받고 알림 채널 오류 이벤트를 발생시켜 XML 페이로드가 유효하지 않음을 알 수 있습니다.

    특히 웹 서비스가 WCF, .NET, Azure 및 기타로 구축되지 않은 경우 WP7에서 푸시 알림을 사용하면 눈이 먼 방황하는 것처럼 보입니다. ".. 알림 채널을 열지 못했습니다 때이 예외가 발생 다시 알림 채널을 열어보십시오"읽기 "InvalidOperationException(Failed to open channel)"해야 하지 읽기 예외 메시지

    문서 (reference)

    0

    각 기기의 URL을 가져오고 있습니까? 당신은 당신이 각 클라이언트에서 URL을 검색하는 방법을 찾아야 그렇게되면 일단 당신이 그와

    , 장치가 연결하는 각 장치마다의 푸시 알림 서비스로서에서

    를 URL을 얻을 필요가 당신의 아직 푸시 알림을받지 못하면 푸시 알림과 관련이 있는지 알기 위해 Microsoft에 문의하십시오.