私はクライアントXMPPを持っていますが、私はその質問があるので、CONNECTION_DRAININGメッセージを受け取ったことはありません ロードバランシングを実行するために接続を閉じる頻度を正確にCCSが必要とする頻度は?ロードバランシングを実行するためにCCSが接続を閉じる頻度は正確ですか?
私は、具体的https://developers.google.com/cloud-messaging/ccs
この部分
定期、CCSのニーズから、ドキュメントを読んだ
............................... more code def message_callback(session, message): global unacked_messages_quota gcmData = message.getTags('data:gcm') if gcmData: print "alert, the connection is being drained and will be closed soon !!!!!!!!!!!!!" gcm = message.getTags('gcm') if gcm: gcm_json = gcm[0].getData() msg = json.loads(gcm_json) if not msg.has_key('message_type'): # Acknowledge the incoming message immediately. send({'to': msg['from'], 'message_type': 'ack', 'message_id': msg['message_id']}) .......................................................... more code
CONNECTION_DRAININGメッセージを受信した場合、これは私は確認してください私のコードの一部です。接続を閉じて負荷 の負荷を実行します。接続を閉じる前に、CCSは CONNECTION_DRAININGメッセージを送信して、接続が であり、すぐに終了することを示します。 「排水」とは、接続に入ってくるメッセージの流れを終了させることですが、パイプラインにすでにあるものはすべて を許可します。 CONNECTION_DRAININGメッセージを受信した場合は、 が必要な場合は、すぐに別のCCS接続にメッセージ を送信し、新しい接続を開始する必要があります。ただし、元の接続を開いたままにしておいてください。 は、接続が終了する可能性のあるメッセージを受信し続けます( を応答します)。
<message>
<data:gcm xmlns:data="google:mobile:data">
{
"message_type":"control"
"control_type":"CONNECTION_DRAINING"
}
</data:gcm>
</message>