Я новичок в использовании Xirsys API для Android.Я следовал этому руководству («Обучение WebRTC, начало работы»), но я замечаю одну вещь: сообщение «пользователей», которое я получаю от SYS , продолжает расти, с дубликатами с тем же именем, которое я использую длямои тесты (предположительно, потому что я подключаюсь несколько раз, когда пытаюсь проверить API).Вот пример сообщения:
{"m":{"f":"StayingInTouch/__sys__","o":"peers","t":null},"p":{"users":["tad@gmail.com","tad@gmail.com","tad@gmail.com","tad@gmail.com","tad@gmail.com","tad@gmail.com","tad@gmail.com","tad@gmail.com","tad@gmail.com","tad"]},"t":"u"}
Есть ли что-то, что я должен сделать, кроме закрытия различных ресурсов, чтобы Xirsys удалил этого пользователя из своего внутреннего списка?
Я запускаювыполнив PUT через Volley для получения токена, затем выполните GET через Volley для получения URL-адреса хоста сигнализации, затем откройте сокет:
okhttp3.Request request = new okhttp3.Request.Builder().url(hostValue + "/v2/" + mToken).build();
ws = client.newWebSocket(request, socketListener);
Все это прекрасно работает, и яспособен передавать сигналы туда и обратно.
Вот мой onDestroy ():
protected void onDestroy() {
shutDownResources();
try {
client.dispatcher().executorService().shutdown();
} catch (Exception e) {
myLog("Error shutting down socket client: " + e.getMessage());
}
mQueue.cancelAll(null);
mQueue.stop();
super.onDestroy();
}
А вот метод shutDownResources ():
private void shutDownResources() {
if ( localDataChannel != null ) {
try {
localDataChannel.unregisterObserver();
localObserver = null;
localDataChannel.close();
localDataChannel.dispose();
localDataChannel = null;
} catch (Exception e) {
myLog( "Error closing local data channel:" + e.getMessage());
}
}
if ( localPeer != null ) {
try {
localPeer.close();
localPeer.dispose();
localPeer = null;
} catch (Exception e) {
myLog( "Error closing peer:" + e.getMessage());
}
}
if ( ws != null ) {
try {
ws.cancel();
ws = null;
} catch (Exception e) {
myLog( "Error shutting down socket client: " + e.getMessage());
}
}
iceServers = null;
iceServerMap.clear();
}