2016-06-14 1 views
0

私はクライアント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> 

答えて

0

それは、少なくとも週に一度通常ですが、負荷に応じて、はるかに頻繁にすることができます:

CONNECTION_DRAININGメッセージは次のようになります。

関連する問題