服务器客户端的MQTT服务器故障周期(在同一个应用程序上)

时间:2014-06-16 08:27:51

标签: delphi wireshark mqtt

我正在使用Delphy XE2处理Pascal中的MQTT服务器应用程序,以便与包含MQTT客户端和可以接收信息并发送接收器Ack的Android应用程序的其他应用程序连接。为了获得良好的使用效果,我需要保留良好的效果。

在Server应用程序上,我创建了一个MQTT Client来跟踪我的系统活动并检查消息的良好流量。

这个应用程序很好,没有内存泄漏(使用FastMM验证)并且所有功能都可以(我已检查所有内容......)。但是我不明白,几天之内所有工作都很好,不一会儿,我的服务器就停下来听客户了。

我可以摧毁客户端&服务器的对象,重新制作和重新连接,没有什么可以修复应用程序,我必须关闭并打开我的服务器的新进程。

在互联网上寻找之后,我没有找到任何有关失败周期的信息。

确切地说,它始终是相同的行为:

  1. 一切都好。

  2. 我的客户端尝试发送消息但失败。尝试8次(MaxRetry)。

  3. 它已经断开了他自己。之后,它一直重新连接,因为他在同一台计算机上,但他没有完成所有的消息启动。

  4. 断开 - 重新连接重复并通过引导其他客户端的断开来完成,因为它是传输的主要支柱。 //通常返回

  5. 配置客户端:

    TTClientComp.AutoSubscribe := false;
    TTClientComp.Broker := false;
    TTClientComp.Clean := TRUE;
    TTClientComp.Host := 'localhost';
    TTClientComp.KeepAlive := 10;
    TTClientComp.LocalBounce := false;
    TTClientComp.MaxRetries := 8;
    TTClientComp.Port := 1883;
    TTClientComp.RetryTime := 60;
    TTClientComp.Tag := 0;
    TTClientComp.ClientID:='ClServ';
    

    配置服务器

    TTServeurComp.Port := 1883;
    TTServeurComp.RetryTime := 60;
    TTServeurComp.MaxRetries := 4;
    TTServeurComp.Tag := 0;
    TTServeurComp.LocalBounce := false;
    

    如果有人可以帮助我,欢迎你。

    对不起我的英语,我培训我做得更好;)

    感谢阅读和时间。

    /////////////////////////

    编辑com :: (参见WireShark)(37.124,139.1,37.248是客户,175是服务器)

    此消息后续循环显示3分钟和7秒,并且与我的错误同时出现。我通常不会使用那个逻辑,如果有人可以快速解释我,他会很酷,因为我不知道wath,例如," tapeware" ;)

    讨论正常//

      

    37.175> 37.248 Ack ibm-mqisdp> 57080

         

    139.1> 37.175 Psh,Ack 50562> IBM-mqisdp

         

    37.175> 139.1 Psh,Ack ibm-mqisdp> 50562

         

    137.1> 37.175 Ack 50562> IBM-mqisdp

         

    37.124> 37.175 Psh,Ack tapeware> IBM-mqisdp

         

    37.175> 37.124 Ack ibm-mqisdp>的TapeWare

    Bug //

      

    37.248> 37.175 Fin,Ack 57080 > ibm-mqisdp

         

    37.175> 37.248 Ack ibm-mqisdp> 57080

         

    37.175> 37.248 Fin,Ack ibm-mqisdp> 57080

         

    37.248> 37.175 Ack 57080> ibm-mqisdp

         

    37.248> 37.175 Syn 59022 > IBM-mqisdp

         

    37.175> 37.248 Rst,Ack ibm-mqisdp> 59022

    /!\第一个客户端现在由服务器应用程序断开连接(它是Android手机或平板电脑)

      

    37.175> 37.124 Fin,Ack ibm-mqisdp> tapeware

         

    37.124> 37.175 Ack tapeware> ibm-mqisdp

         

    37.124> 37.175 Fin,Ack tapeware> ibm-mqisdp

         

    37.175> 37.124 Ack ibm-mqisdp>的TapeWare

         

    37.175> 37.124 Fin,Ack ibm-mqisdp> crinis-hb

         

    37.124> 37.175 Ack crinis-hb> IBM-mqisdp

         

    37.124> 37.175 Fin,Ack crinis-hb> IBM-mqisdp

         

    37.175> 37.124 Ack ibm-mqisdp> crinis-hb

         

    37.175> 37.124 Fin,Ack ibm-mqisdp> epl-slp

         

    37.124> 37.175 Ack epl-slp> ibm-mqisdp

         

    37.124> 37.175 Fin,Ack epl-slp> ibm-mqisdp

         

    37.175> 37.124 Ack ibm-mqisdp> EPL-SLP

         

    37.124> 37.175 Syn rnm > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> rnm

    /!\在这里,我认为其他客户端开始断开连接,但我只有一个客户端,我有一点干净。

      

    37.124> 37.175 Syn rnm> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> rnm

         

    37.124> 37.175 Syn rnm> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> rnm

         

    37.124> 37.175 Syn v-one-spp > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> v-one-spp

         

    37.124> 37.175 Syn v-one-spp> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> v-one-spp

         

    37.124> 37.175 Syn an-pcp > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> an-pcp

         

    37.124> 37.175 Syn v-one-spp > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> v-one-spp

         

    37.124> 37.175 Syn an-pcp > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> an-pcp

         

    37.124> 37.175 Syn an-pcp> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> an-pcp

         

    37.124> 37.175 Syn 项目> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp>项目

         

    37.124> 37.175 Syn item> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp>项目

         

    37.124> 37.175 Syn item> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp>项目

         

    37.124> 37.175 Syn spw_dnspreload > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> spw_dnspreload

         

    37.124> 37.175 Syn spw_dnspreload> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> spw_dnspreload

         

    37.124> 37.175 Syn qtms-bootstrap > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> qtms-bootstrap

         

    37.124> 37.175 Syn spw_dnspreload > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> spw_dnspreload

         

    37.124> 37.175 Syn qtms-bootstrap > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> qtms-bootstrap

         

    37.124> 37.175 Syn qtms-bootstrap> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> qtms-bootstrap

         

    37.124> 37.175 Syn spectraport > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> spectraport

         

    37.124> 37.175 Syn spectraport> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> spectraport

         

    37.124> 37.175 Syn spectraport> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> spectraport

         

    37.124> 37.175 Syn sse-app-config > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> SSE-APP-配置

         

    37.124> 37.175 Syn sse-app-config> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> SSE-APP-配置

         

    37.124> 37.175 Syn sscan > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> sscan

         

    37.124> 37.175 Syn sse-app-config > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> SSE-APP-配置

         

    37.124> 37.175 Syn sscan > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> sscan

         

    37.124> 37.175 Syn sscan> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> sscan

         

    37.124> 37.175 Psh,Ack dvapps > IBM-mqisdp

         

    37.175> 37.124 Ack ibm> -mqisdp> dvapps

         

    37.124> 37.175 Syn opentrac > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> opentrac

         

    37.124> 37.175 Syn opentrac> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> opentrac

         

    37.124> 37.175 Syn opentrac> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> opentrac

         

    37.124> 37.175 Syn 告密者> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp>告密者

         

    37.124> 37.175 Syn informer> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp>告密者

         

    37.124> 37.175 Syn 陷阱端口> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp>陷阱端口

         

    37.124> 37.175 Syn 告密者> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp>告密者

         

    37.124> 37.175 Syn 陷阱端口> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp>陷阱端口

         

    37.124> 37.175 Syn trap-port> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp>陷阱端口

         

    37.124> 37.175 Syn trap-port-mom > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp>陷阱端口-MOM

         

    37.124> 37.175 Syn trap-port-mom> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> trap-port-mom

         

    37.124> 37.175 Syn trap-port-mom> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> trap-port-mom

         

    37.124> 37.175 Syn trap-port-mom> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> trap-port-mom

         

    37.124> 37.175 Syn nav-port > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> nav-port

         

    37.124> 37.175 Syn nav-port> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> nav-port

         

    37.124> 37.175 Syn sasp > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> sasp

         

    37.124> 37.175 Syn nav-port > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> nav-port

         

    37.124> 37.175 Syn sasp > IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> sasp

         

    37.124> 37.175 Syn sasp> IBM-mqisdp

         

    37.175> 37.124 Rst,Ack ibm-mqisdp> sasp

         

    37.124> 37.175 Fin,Ack ibm-mqisdp>的 xxnetserver

    /!\现在,客户端开始重新连接 。但他们无法沟通,服务器只是让他们连接和。减去

    它始终不是同一条消息,但通常非常相似

    我要去寻找^^

    非常感谢=)

1 个答案:

答案 0 :(得分:2)

您必须深入了解MQTT代理和日志。 查看MQTT Clean Session标志的代理实现,当尝试使用相同的客户端ID和干净会话重新连接时,可能会导致某些块:

clean_session 如果为False,则客户端是持久客户端,当客户端断开连接时,将保留订阅信息和排队消息。

clean_session 如果为True,代理将在断开连接时删除有关此客户端的所有信息。