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");
}
};