首先,打开M2Mqtt这个项目,打开MqttClient这个类,修改KeepAliveThread()这个线程方法,将this.keepAliveEvent.WaitOne(wait)改为this.keepAliveEvent.WaitOne(1000),这是要求等待时间从原来的60000改为1000,也就是1分钟改为1秒钟。修改注释掉if (delta >= this.keepAlivePeriod)这个语句,包括块else里的内容,一起注释掉,这个方法下面,加上this.Ping()这个是保证在不能保证时间是否超时之前,强行去执行Ping校验,通过校验结果判断是否关闭Mqtt。
第二,在外部调用时,在M2Mqtt连接成功时,开启一个线程,循环监控当前连接状态,如果连接断开,重新连接,这个时候,一定要记住当前连接的Clientid、user、password、订阅主题和发布主题等信息,以免不能够及时连接后,接收后续的消息。因为在mqtt判断ping连接断开后,mqtt内部会自动断开连接,所以这个时候,我们不用手动去断开连接,但重连时,mqtt会自动搜索当前的clientid,所以这个时间有些长,而且第一次时会抛出错误,第二次连接时,才会成功,这个具体机制没有研究
给你一段代码,看看对你有没有帮助:\x0d\x0a这是我的tomcatde DHCP的配置\x0d\x0a\x0d\x0a当中的\x0d\x0alogAbandoned="true" removeAbandoned="true" removeAbandonedTimeout="60"就是用来配置数据库断开后自动连接的。方法如下:
检查服务是否启动
1、在SQLServer服务器中, 打开SQLServer服务管理器。单击【开始】-【程序】-【Microsoft SQLServer】-【服务管理器】菜单命令。
2、打开【SQLServer服务管理器】,单击【服务器】,选择要检查的SQLServer的实例名【abc10-1DA235E90】,单击【服务】,选择【SQLServer】选项,如果此时暂停或者停止按钮可用,说明服务已经启动;否则则没有启动,启动即可。
3、最好在【SQLServer服务管理器】中将选择随系统启动而启动服务。选择【当启动OS时自动启动服务】选择框,完成让MSSQLSERVER服务随 *** 作系统启动而自动启动。
4、再次打开SQL Server 数据库,选择连接数据库服务器实例,可以正常连接打开数据库了。
5、SQL Server数据库能正常连接得保证网络通畅, *** 作过程中还需要进行网络测试,可以通过PING命令实现。如下图所示,表示网络通畅。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)