Пушер соединение очень медленно в 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 секунд. Даже если у нас очень хорошее интернет-соединение.