Unity 클라이언트 앱에서 업스트림 메시지 전송

XMPP 연결 서버 프로토콜을 앱 서버에 구현하면 사용자의 기기에서 클라우드로 보낸 업스트림 메시지를 수신할 수 있습니다. 업스트림 메시지를 시작하기 위해 클라이언트 앱에서 다음을 포함한 요청을 보냅니다.

  • 수신 앱 서버의 SENDER_ID@gcm.googleapis.com 형식 주소
  • 발신자 ID마다 고유한 메시지 ID
  • 메시지 페이로드의 키-값 쌍을 구성하는 메시지 데이터

데이터가 수신되면 FCM이 전송 기기와 앱에 대한 추가 정보를 포함하여 XMPP 스탠자를 작성해 앱 서버로 보냅니다.

Unity 클라이언트 앱에서 업스트림 메시지 전송

서버에 업스트림 메시지를 보내려면 Unity 클라이언트 앱에서 다음과 같이 메시지를 작성하고 Send를 호출합니다.

Firebase.Messaging.Message message;
message.To = SENDER_ID + "@gcm.googleapis.com";
message.MessageId = get_unique_message_id();
message.Data["my_message", "Hello World");
message.Data["my_action", "SAY HELLO");
message.TimeToLive = kTimetoLive;
Firebase.Messaging.FirebaseMessaging.Send(message);

각 항목의 의미는 다음과 같습니다.

  • message.To: 수신 앱 서버의 주소이며 SENDER_ID@gcm.googleapis.com 형식입니다.

  • message.MessageId: 고유한 메시지 식별자입니다. 모든 메시지 수신자 콜백은 이 메시지 ID를 기준으로 식별됩니다.

  • message.Data: 문자열인 키와 값의 매핑입니다.

  • message.TimeToLive: 기기가 오프라인 상태인 경우 FCM 저장소에 메시지를 보관해야 하는 시간(초)을 지정합니다. 만료되기 전에 FCM이 메시지를 전송하지 못하면 클라이언트로 알림을 돌려보냅니다.

FCM 클라이언트 라이브러리는 클라이언트 앱에 메시지를 캐시 처리하여 클라이언트의 서버 연결이 활성 상태가 되면 메시지를 보냅니다. 메시지가 수신되면 FCM 연결 서버가 앱 서버로 메시지를 보냅니다.

앱 서버에서 XMPP 메시지 수신

FCM은 클라이언트 앱의 업스트림 메시징 호출을 수신하면 업스트림 메시지를 보내는 데 필요한 XMPP 스탠자를 생성합니다. FCM에서 categoryfrom 필드를 추가한 다음 앱 서버에 다음과 같은 스탠자를 보냅니다.

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "category":"com.example.yourapp", // to know which app sent it
      "data":
      {
          "hello":"world",
      },
      "message_id":"m-123",
      "from":"REGID"
  }
  </gcm>
</message>

ACK 메시지 전송

앱 서버는 위와 같은 업스트림 메시지에 대한 응답으로 동일한 연결을 사용하여 고유한 메시지 ID가 포함된 ACK 메시지를 보내야 합니다. FCM이 ACK를 수신하지 않으면 앱 서버에 메시지를 다시 보내려고 할 수 있습니다.

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "to":"REGID",
      "message_id":"m-123"
      "message_type":"ack"
  }
  </gcm>
</message>

업스트림 메시지 구문의 자세한 내용은 XMPP 연결 서버 참조를 확인하세요.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.