У меня проблема с крионетом, что клиент отключается. Может ли кто-нибудь помочь мне в том, что может быть источником этой проблемы?
используя библиотеку kryonet, чтобы клиент оставался на связи, ему необходимо отправлять и получать пакеты KeepAlive. Клиентский поток автоматически обрабатывает это. но если мой клиент выполняет тяжелую работу (Примечание: в другом потоке), кажется, что это мешает клиентскому потоку делать это.
проблема возникает при чтении большой таблицы базы данных, требуется время, чтобы выбрать некоторые столбцы из таблицы (какой размер для Gega)
но постарайтесь максимально упростить проблему, создав очень большой список на стороне клиента после того, как сервер отправит что-либо для запуска задачи.
после долгих поисков и ожидания причины проблемы; я пытаюсь
- различные пороги тайм-аута
- разные версии крио 2.23 и 2.20
- используя соединение TCP и UPD (Примечание: я подключаюсь как на сервере, так и на клиенте)
вот вам код клиента, если получен какой-либо объект. Сделайте это в другом потоке:
@Override
public void received(Connection connection, Object object) {
if (object instanceof String) {
new Thread() {
@Override
public void run() {
final int RECORD_COUNT = 99999999;
final String RECORD = "Help I am trapped in a fortune cookie factory\n";
List<String> records = new ArrayList<String>(RECORD_COUNT);
for (long i = 0; i < RECORD_COUNT * 4; i++) {
records.add(RECORD);
}
}
}.start();
}
}
Журнал клиента:
после некоторых сообщений KeepAlive он выдает два типа сообщений (соединение было прервано) или (время ожидания соединения)
00:24 DEBUG: [kryo] Write: KeepAlive
00:28 DEBUG: [kryo] Read: KeepAlive
00:37 DEBUG: [kryo] Write: KeepAlive
00:37 DEBUG: [kryonet] Connection 7 update: An established connection was aborted by the software in your host machine
OR
00:35 DEBUG: [kryo] Read: KeepAlive
00:41 DEBUG: [kryo] Write: KeepAlive
00:50 DEBUG: [kryonet] Connection 8 timed out.
Журнал сервера:
94:10 DEBUG: [kryo] Write: KeepAlive
94:11 DEBUG: [kryonet] Connection 7 timed out.
94:11 INFO: [kryonet] Connection 7 disconnected.