Sails socket.io из приложения для Android

Я использую паруса v0.11.2 и пытаюсь подключиться к веб-сокетам с помощью https://github.com/socketio/socket.io-client-java

Моя проблема заключается в том, что когда я выхожу из системы с моего сервера (я использую passport.js), событие отключения было запущено правильно, но я не могу восстановить соединение после добавления этого события.

Вот мой код:

socket = IO.socket(Constants.LOCAL_URL + "?__sails_io_sdk_version=0.11.0");
socket.io().on(Manager.EVENT_TRANSPORT, new Emitter.Listener()
            {
                @Override
                public void call(Object... args)
                {
                    Transport transport = (Transport) args[0];

                    transport.on(Transport.EVENT_REQUEST_HEADERS, new Emitter.Listener()
                    {
                        @Override
                        public void call(Object... args)
                        {
                            @SuppressWarnings("unchecked")
                            Map<String, List<String>> headers = (Map<String, List<String>>) args[0];
                            // modify request headers
                            headers.put("Cookie", Arrays.asList(COOKIE));
                        }
                    });
                }
            });
            socket.on(Socket.EVENT_ERROR, new Emitter.Listener()
            {

                @Override
                public void call(Object... args)
                {
                    if (listener != null)
                    {
                        listener.onError();
                    }
                    Log.e("test", "ERROR");
                }

            }).on(Socket.EVENT_CONNECT, new Emitter.Listener()
            {
                @Override
                public void call(Object... args)
                {
                    listener.onConnect();
                }
            }).on(Socket.EVENT_DISCONNECT, new Emitter.Listener()
            {
                @Override
                public void call(Object... args)
                {
                    listener.onDisconnect();
                }
            }).on(Socket.EVENT_CONNECT_ERROR, new Emitter.Listener()
            {
                @Override
                public void call(Object... args)
                {
                    if (listener != null)
                    {
                        listener.onConnectError();
                    }
                }
            }).on(Socket.EVENT_CONNECT_TIMEOUT, new Emitter.Listener()
            {
                @Override
                public void call(Object... args)
                {
                    if (listener != null)
                    {
                        listener.onConnectError();
                    }
                }
            }).on(Socket.EVENT_RECONNECT_ERROR, new Emitter.Listener()
            {
                @Override
                public void call(Object... args)
                {
                    if (listener != null)
                    {
                        listener.onConnectError();
                    }
                }
            }).on(Socket.EVENT_RECONNECT_FAILED, new Emitter.Listener()
            {
                @Override
                public void call(Object... args)
                {
                    if (listener != null)
                    {
                        listener.onConnectError();
                    }
                }
            });
            socket.connect();

А вот мой слушатель, когда я пытаюсь восстановить соединение после события отключения:

SocketIOManager.SocketConnexionListener socketConnexionListener = new SocketIOManager.SocketConnexionListener()
    {

        @Override
        public void onConnect()
        {
            Log.e("test", "CONNECT");
        }

        @Override
        public void onError()
        {
            Log.e("test", "ERROR");
        }

        @Override
        public void onDisconnect()
        {
            createSocket();//Call the code above to create a new socket or call socket.connect(); but it's not working and no error throw...
            Log.e("test", "DISCON");
        }

        @Override
        public void onConnectError()
        {
            Log.e("test", "CONNECT ERROR");

        }
    };

0 ответов

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