[发明专利]用于嵌入式终端长连接通讯的方法有效
申请号: | 201910916245.1 | 申请日: | 2019-09-26 |
公开(公告)号: | CN110572474B | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 袁中庆;李世绍;刘潇骁;黄欣欣;蒋启平;李晨心 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/26;H04L29/06 |
代理公司: | 成都虹桥专利事务所(普通合伙) 51124 | 代理人: | 陈立志 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 嵌入式 终端 连接 通讯 方法 | ||
本发明涉及嵌入式技术领域,公开了一种用于嵌入式终端长连接通讯的方法,用以解决建立多线程开销大,数据同步复杂的问题。本发明只创建一个单独的通讯线程;当嵌入式终端与服务器之间的长连接异常断开时,通讯线程调用嵌入式终端的初始化接口,实现自动重新连接;当嵌入式终端需要发送消息时,通讯线程调用嵌入式终端的消息发送接口进行消息发送;当嵌入式终端需要接收消息时,通讯线程调用嵌入式终端的消息接收接口进行消息接收;通讯线程在消息处理时,将需要处理的消息放入消息队列逐条处理;逐条处理过程中,如果当前消息处理失败,则缓存该消息,等待循环下次发送。本发明适用于嵌入式终端长连接通讯。
技术领域
本发明涉及嵌入式技术领域,特别涉及用于嵌入式终端长连接通讯的方法。
背景技术
传统的多线程实现长连接数据传输方案一般是:接收数据开辟一个线程,发送消息再开辟一个线程。虽然在一定程度上提高了响应速度,但是线程也是程序,所以线程需要占用内存,而对于资源紧张的嵌入式终端,内存开销是必不可少需要考虑的一点;多线程需要协调和管理,对共享资源的访问会相互影响,必须解决竞用共享资源的问题;而复杂的控制,开发难度相对单线程较高,可能会引入一些Bug。本方法设计相对于传统的多线程实现长连接数据传输的优势有如下两点:1)轻量性:本方法实现长连接建立只需要建立单个线程即可,所占用的内存资源将会大大减少,节省的堆栈空间可以根据具体的业务需求,适宜地进行弹性增大消息队列,从而保证在网络拥塞的情况下,消息传输的完整性和准确性;
2)易用性:因为采用单线程的架构设计,对于消息发送和接收处理都处于一个线程,整个流程相对简单紧凑,裁剪了多个线程间的通信,删减了多线程之间非必须的繁琐交互,从而提供给开发者的使用接口也相对精简。
目前,由于嵌入式设备资源有限,并且要保证数据传输的安全性和完整性。必不可少的需要增加安全模块,消息缓存等机制,这又将消耗很大比例的内存空间。而由于硬件成本的限制以及实际的业务应用场景相对简单,嵌入式芯片的RAM一般都相对较小。因此在保证功能完整运作的情况下,内存开销需要尽可能压榨到极致。传统方法中实现嵌入式设备的远程控制则需要通过与云端的长连接来建立通信,而一般收发消息的处理会采用多线程机制来实现。因为多个线程间独立运行,在多核的情况下更能充分利用CPU资源的,能一定程度上提高响应速度。但是在嵌入式终端采用多线程可能相对不是那么合适。
发明内容
本发明要解决的技术问题是:提供一种用于嵌入式终端长连接通讯的方法,用以解决建立多线程开销大,数据同步复杂的问题。
为解决上述问题,本发明采用的技术方案是:只创建一个单独的通讯线程,并通过所述通讯线程建立嵌入式终端与服务器之间的长连接;
当嵌入式终端与服务器之间的长连接异常断开时,所述通讯线程调用嵌入式终端的初始化接口,实现自动重新连接;当嵌入式终端需要发送消息时,所述通讯线程调用嵌入式终端的消息发送接口进行消息发送;当嵌入式终端需要接收消息时,所述通讯线程调用嵌入式终端的消息接收接口进行消息接收;
所述通讯线程在消息处理时,将需要处理的消息放入消息队列逐条处理,其中,所述消息处理包括消息发送和消息接收;逐条处理过程中,如果当前消息处理失败,则缓存该消息,等待循环下次发送。
进一步的,所述通讯线程在消息发送和接收时,可采用二进制流来替代传统的json格式数据,减小网络负荷。
进一步的,所述通讯线程逐条处理各条消息时,均可设定超时时间。
进一步的,嵌入式终端与服务器会可通过所述通讯线程定期发送一个心跳消息给对方,如果一方在约定的时间内没有收到对方发送的心跳消息,则表明对方已经异常断开。
进一步的,为了最大程度保证重要消息的可达性,在网络拥塞的情况,所述通讯线程可将优先级低的消息出队,让优先级高的消息入队。
进一步的,所述嵌入式终端可为智能网关。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910916245.1/2.html,转载请声明来源钻瓜专利网。