2014-09-27 52 views
2

所有工作都很好,但有時在連續數小時後連接可能丟失。我應該如何檢測該聊天不再工作?我應該使用PING/PONG事件來檢測嗎?這種情況非常罕見,但仍然可能發生。感謝您的建議。Delphi XE 7 Indy IRC檢測連接丟失

+1

呃,你正在使用哪個Delphi版本?你讀過RFC(http://tools.ietf.org/html/rfc2812#section-3.7.2)嗎? – Harriv 2014-09-27 13:11:08

+1

您應該定期「PING」您的服務器,但這與Delphi完全無關。 – 2014-09-27 13:30:42

+0

Im使用Delphi XE 7 – mca64 2014-09-27 13:39:32

回答

3

是的,應該使用IRC PING和PONG命令來提高連接穩定性。


服務器和客戶端可以發送「空」(無操作,心跳)消息來保持連接活着。如果一方不再收到這些消息,則認爲連接可能丟失。如果服務器檢測到無響應客戶端,則可以簡單地關閉連接。客戶端可能會顯示錯誤消息並提供用戶再次連接,或自動重新連接。

單獨添加無操作(心跳)消息將有助於保持連接穩定,因爲某些網絡組件可能選擇在長時間不活動後終止連接。

+0

呃......是不是「PING」的目的?請考慮閱讀協議規範。 – 2014-09-27 15:47:11

+0

@FreeConsulting遺憾的是,誤解,編輯 – mjn 2014-09-27 18:57:46