私のマルチプレイヤーゲームには2人の対戦相手がいます。他の1人がネットワークに問題または切断をしたときに、どのようにして1ピアに通知することができますか?私はどちらかというと、onPeerLeft
またはonPeersDisconnected
のいずれかが、どこでも解雇されることを期待していました。Google Playサービス:ピアネットワークの切断を処理するにはどうすればよいですか?
実は私は1つのピアが、私は、ユーザーに何かを投げることができ、指定時間内にpingメッセージを受信しない場合ようにpingメカニズムのいくつかの種類を実装するつもりです(切り離さその相手を指定するダイアログが表示されます。)
代わりに、この種の問題が発生したときに聴くコールバックがありますか?私は、ピアがデータを送信することができないかどうかを検出するためにonRealTimeMessageSent
コールバックを使用しています切断ピアで
@Override
public void onRealTimeMessageSent(int statusCode, int token, String arg2) {
//f the peer can't send data
if (statusCode == GamesClient.STATUS_REAL_TIME_MESSAGE_SEND_FAILED) {
//here I show an error dialog and move out of game
}
}
、他のコールバックは、(onPeerLeft
やonPeersDisconnected
として提起されていません)
何か提案がありますか?前もって感謝します!あなたがbuilder.build()を呼び出す前にsetRoomStatusUpdateListener(RoomStatusUpdateListener)を呼び出していない可能性がありますように
ok、最後に、 'onRoomConnected'コールバックで' Timer'が5秒ごとに 'Timertask'をスケジュールするようにping-pongメカニズムを選択しました。その後、新しいメッセージを送信する前に最後に受信したping時間を確認します。経過時間がping時間を超えている場合は、適切なエラーメッセージをスローすることができます。他の提案は歓迎されます! –