繁体   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