idHttpServer
断开连接时是否会触发任何事件?
断开连接不是指客户端断开连接,而是idHTTPServer
由于某种原因断开连接。
我可以更好地解释一下:idHTTPServer
在侦听套接字端口时,由于某种未知原因,计算机与网络断开连接(例如,说网络不可用),该组件不再起作用(它停止监听端口),在这种情况下,我需要重新连接(重新打开端口)。根据帮助,idHttpServer.OnDisconnect
仅在客户端与服务器断开连接时才触发。
最佳答案
我有两条建议可以帮助您解决问题。
首先,添加一个计时器,该计时器每分钟(或您选择的间隔)一次,如果您的端口仍在监听,则“询问”窗口。这必须在Indy之外完成,因为Indy没有机制可以执行此操作。如果Windows告诉您该端口未监听,则将其记录到日志中并重新启动服务器。定期检查此日志,以查看您的应用是否曾经报告过您的端口以停止监听。这将告诉您它是否确实断开连接。
第二,您可能需要考虑每晚重新启动服务器套接字。例如,在每晚的午夜,停止并启动服务器套接字以确保重新连接。可能会有一些变量溢出,例如,如果您不断增加一个数字,并且这个数字越来越大,那么随着时间的流逝,该数字将变得太大,以至于应用程序无法容纳它。这可能会在5秒钟或5个月的运行时间之间发生,具体取决于您递增的速度。
关于delphi - idHttpServer上的OnDisconnect事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11105424/