Все работает хорошо, но иногда через много часов связь может быть потеряна. Как я должен определить, что чат больше не работает? Должен ли я использовать событие PING/PONG, чтобы обнаружить это? Это случается очень редко, но все же может случиться. Спасибо за предложения.
Delphi XE 7 Indy IRC обнаруживает потерю соединения
Ответы (1)
Да, команды IRC PING и PONG следует использовать для повышения стабильности соединения.
Сервер и клиент могут отправлять «пустые» сообщения (no-op, heart-beat), чтобы поддерживать соединение. Если одна из сторон больше не получает эти сообщения, соединение можно считать потерянным. Затем сервер может просто закрыть соединение, если обнаружит, что клиент не отвечает. Клиент может отобразить сообщение об ошибке и предложить пользователю повторно подключиться или выполнить повторное подключение автоматически.
Добавление только сообщений об отсутствии операций (тактовых импульсов) поможет сохранить стабильное соединение, поскольку некоторые сетевые компоненты могут решить разорвать соединение после длительного бездействия.
person
mjn
schedule
27.09.2014
Тьфу... Разве это не цель
PING
? Пожалуйста, рассмотрите возможность чтения спецификаций протокола.
- person Free Consulting; 27.09.2014
@FreeConsulting извините за недоразумение, отредактировано
- person mjn; 27.09.2014
PING
обслуживать свой сервер, но это никак не связано с Delphi. - person Free Consulting   schedule 27.09.2014