Delphi XE 7 Indy IRC открива загуба на връзка

Всичко работи добре, но понякога след много часове връзката може да се загуби. Как да разбера, че чатът вече не работи? Трябва ли да използвам PING/PONG събитие, за да открия това? Това се случва много рядко, но все пак може да се случи. Благодаря за предложенията.


person mca64    schedule 27.09.2014    source източник
comment
Ъ, коя версия на Delphi използвате? Прочетохте ли RFC (tools.ietf.org/html/rfc2812#section- 3.7.2)?   -  person Harriv    schedule 27.09.2014
comment
Трябва периодично да PING сървъра си, но това няма никаква връзка с Delphi.   -  person Free Consulting    schedule 27.09.2014
comment
Използвам Delphi XE 7   -  person mca64    schedule 27.09.2014
comment
@mjn, това не е вярно. 100% от сървърите, които съм виждал в природата, отговарят на протокола.   -  person Free Consulting    schedule 27.09.2014


Отговори (1)


Да, командите IRC PING и PONG трябва да се използват за подобряване на стабилността на връзката.


Сървърът и клиентът могат да изпращат "празни" (no-op, heart-beat) съобщения, за да поддържат връзката жива. Ако една страна вече не получава тези съобщения, връзката може да се счита за изгубена. След това сървърът може просто да затвори връзката, ако открие неотговарящ клиент. Клиент може да покаже съобщение за грешка и да предложи на потребителя да се свърже отново или да се свърже отново автоматично.

Добавянето само на съобщения без операция (сърдечен ритъм) ще помогне да се поддържа връзката стабилна, тъй като някои мрежови компоненти може да изберат да прекратят връзките след дълго време на неактивност.

person mjn    schedule 27.09.2014
comment
Уф... Това не е ли цел на PING? Моля, помислете за спецификациите на протокола за четене. - person Free Consulting; 27.09.2014
comment
@FreeConsulting съжалявам за недоразумението, редактирано - person mjn; 27.09.2014