簡體   English   中英

idHttpServer上的OnDisconnect事件

[英]OnDisconnect event on idHttpServer

idHttpServer斷開連接時是否觸發任何事件?

斷開連接不是指客戶端斷開連接,而是idHTTPServer由於某種原因斷開連接。

我可以更好地解釋一下:當idHTTPServer正在偵聽套接字端口時,由於某種未知原因,計算機斷開了與網絡的連接(例如,說網絡變得不可用),該組件不再起作用(停止了)監聽端口),在這種情況下,我需要重新連接(重新打開端口)。 根據幫助,僅當客戶端與服務器斷開連接時才觸發idHttpServer.OnDisconnect

您可以考慮每隔一段時間從其自身連接創建到服務器的看門狗連接,如果無法連接,則可以重新啟動服務器或執行任何操作來糾正此問題。

這確實具有額外的好處,您實際上正在測試與服務器的連接,因此,如果發生任何其他可能導致客戶端問題連接的問題,這些問題將得到解決。

這也可以通過一個單獨的應用程序來完成,該應用程序可以關閉,終止和重新啟動服務器

我有兩條建議可以幫助您解決問題。

首先,添加一個計時器,該計時器每分鍾(或您選擇的間隔)一次,如果端口仍在偵聽,則“詢問”窗口。 這必須在Indy之外完成,因為Indy沒有機制可以執行此操作。 如果Windows告訴您該端口未監聽,則將其記錄到日志中並重新啟動服務器。 定期檢查此日志,以查看您的應用是否曾經報告過您的端口以停止監聽。 這將告訴您它是否確實斷開連接。

第二,您可能需要考慮每晚重新啟動服務器套接字。 例如,在每晚的午夜,停止並啟動服務器套接字以確保重新連接。 可能會有一些變量溢出,例如,如果您不斷增加一個數字,並且這個數字越來越大,那么隨着時間的流逝,該數字將變得太大,以至於應用程序無法容納它。 運行時間可能在5秒鍾或5個月之間的任何時間,具體取決於您遞增的速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM