Пушер соединение очень медленно в Android

Подключение к Pusher и процесс подписки в Android слишком медленный. Некоторое время занимает 15-20 секунд на этих двух шагах. Я заметил через logcat, что процесс подключения занимает больше времени, чем подписка.

Я прочитал эту ссылку в библиотеке Github Pusher, но не могу применить ее в своем коде. Кто-нибудь может дать мне пример кода, как улучшить производительность?

Мы используем две разные библиотеки сокетов. Ниже приведен код, связанный с Pusher. Прежде всего, у нас есть класс связности толкателя.

public class PusherConnectivity implements GamingConnectivity {
    public Pusher pusher;
    public MultiPlayerActivity mpa;
    public PusherConnectivity(MultiPlayerActivity mpa){
        HttpAuthorizer authorizer = new HttpAuthorizer(URL_HERE);
        PusherOptions options = new PusherOptions().setAuthorizer(authorizer).setEncrypted(true);

        this.mpa = mpa;
        pusher = new Pusher(API_KEY, options);

    }
    @Override
    public void connect() {
        String socketId = CommonObjects.getSharedPreferences(mpa.getContext(), "socket_id", "").toString();
            pusher.connect(new ConnectivityViaPusher(pusher, mpa));
    }

    @Override
    public void disconnect() {
        pusher.disconnect();
    }

}

Теперь у нас есть другой класс, который мы используем для игр, в котором выполняется подписка и игровая часть. Ниже приведен связанный код. Игровой код опущен.

public class GamingThroughPusher extends SocketGamingInterface {
    PrivateChannel channel;

    public Pusher pusher;
    private MultiPlayerActivity activity;

    public GamingThroughPusher(GamingConnectivity gamingConnectivity) {
        super(gamingConnectivity);
        pusher = ((Abc)gamingConnectivity).pusher;
        activity = ((Abc)gamingConnectivity).mpa;
    }



    @Override
    public void subscribe(String channelName, PrivateChannelEventListener listener) {
        try {
            channel = pusher.subscribePrivate(channelName, listener, Constants.PUSHER_CONNECTION_EVENT);
        } catch (Exception e){
            e.printStackTrace();
        }
    }

    @Override
    public void unsubscribe(String channelName){
        pusher.unsubscribe(channelName);
    }
}

Теперь, наконец, из нашего фрагмента я вызываю метод pusher connect и метод обратного вызова on pusher, который является onConnectionStateChange. Я вызываю метод подписки класса GamingThroughPusher. Когда я получаю подтверждение от onSubscriptionSucceed, я начинаю игровую работу.

Но проблема в том, что толчок запускается в большинстве случаев очень медленно. Это займет около 20 секунд. Даже если у нас очень хорошее интернет-соединение.

0 ответов

Другие вопросы по тегам