Nel mio gioco multiplayer ho 2 avversari. Come può essere notificato 1 peer quando l'altro ha problemi di rete/disconnessione? Mi aspettavo che o onPeerLeft
o onPeersDisconnected
dove sparato, ma niente!Google Play Services: come gestire la disconnessione della rete peer?
In realtà ho intenzione di attuare una sorta di meccanismo di ping in modo che se un peer non riceve il messaggio ping entro un determinato periodo di tempo posso buttare qualcosa per l'utente (una finestra di dialogo che specifica che l'avversario scollegato.)
In alternativa, c'è un callback da ascoltare quando si verifica questo tipo di problema?
sul peer scollegato Sto utilizzando la onRealTimeMessageSent
callback per rilevare se il peer non è in grado di inviare i dati, come segue:
@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
}
}
D'altra tra pari, nessun altro callback sono allevati (come onPeerLeft
o onPeersDisconnected
)
Qualche suggerimento? Grazie in anticipo!
ok, finalmente ho optato per un meccanismo di ping-pong con un 'Timer' sheduling un' Timertask' ogni 5 secondi nel callback 'onRoomConnected'. Poi controllo l'ultimo tempo di ping ricevuto prima di inviare il nuovo messaggio, se il tempo trascorso è maggiore di un tempo di ping, allora sono in grado di lanciare il messaggio di errore corretto. Ogni altro suggerimento è ben accetto! –