Как сохранить список имен пользователей на моем канале Xirsys от дублирования? - PullRequest
0 голосов
/ 24 сентября 2019

Я новичок в использовании 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();
}
...