[发明专利]一种基于MQTT协议的聊天方法及系统在审
申请号: | 201810672487.6 | 申请日: | 2018-06-26 |
公开(公告)号: | CN108965265A | 公开(公告)日: | 2018-12-07 |
发明(设计)人: | 史龙 | 申请(专利权)人: | 四川斐讯信息技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/58 |
代理公司: | 成都金德联合知识产权代理事务所(特殊普通合伙) 51271 | 代理人: | 张婵婵;王晓普 |
地址: | 610100 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 服务器 客户端 聊天 身份ID信息 长连接 有效降低网络 电量消耗 会话窗口 即时聊天 会话 轮询 收发 创建 | ||
本发明公开了一种基于MQTT协议的聊天方法及系统,其聊天方法包括步骤:S1:获取第一用户的身份ID信息;S2:根据上述第一用户的身份ID信息,与MQTT服务器进行连接;S3:创建会话窗口并与会话窗口内的用户进行会话。本发明的技术方案是在客户端与MQTT服务器之间进行长连接的基础上,使各个用户间的消息进行即时收发,以实现各个用户间进行聊天的目的,且能够避免即时聊天的客户端多次轮询服务器而造成服务器超负荷的问题。另外,客户端与MQTT服务器进行长连接还能够有效降低网络流量的浪费及电量消耗,具有较好的实用性。
技术领域
本发明涉及通信技术领域,尤其涉及一种基于MQTT协议的聊天方法及系统。
背景技术
即时通讯(Instant messaging)是一个客户终端连网一个即时通讯网路的服务,其允许两人或多人使用网路即时的传递文字讯息、档案、语音与视频交流,如:基于浏览器的web通讯、飞信、ICQ、QQ等多种即时通讯方式。
但是现阶段的即时通讯软件,大多是基于HTTP协议的服务器与客户终端相连接实现的,其存在着以下缺点:
1、HTTP协议是无状态的,基于HTTP协议的服务器不知道下次的会话与上一次的会话是否是同一用户,从而需要利用Cookie去管理用户,进而造成了服务器负荷过重,也增加了会话被盗窃的可能性;
2、HTTP协议不支持真正意义上的长连接,而聊天软件又要求做到即时收发消息,从而,聊天软件app客户端需要不停的轮询服务器才能够实现即时通讯的目的,其持续轮询访问服务器将对客户端和服务器造成巨大的流量浪费及性能负担,而且其必然耗费大量的电能;
3、HTTP协议的本身报文报头等需要占用较多的字节,进而造成流量的浪费,也减慢了通讯速度。
如:申请号为201110454201.5的中国发明专利公开了一种基于浏览器的WEB即时通讯方法,该即时通讯方法包括:用户登录浏览器客户端,向服务器发起http请求,服务器从线程池获取线程处理浏览器客户端发起的http连接请求,判断其缓冲区是否有新信息,如果有,则服务器将信息发送给浏览器客户端;如果没有,则服务器使用NIO技术挂起连接,并释放线程到线程池;服务器判断连接是否超时;如果超时,则从线程池获取一个线程发送一个心跳信号给浏览器客户端,重新建立连接;否则服务器判断是否有新消息,如果是,则服务器将新消息发送给浏览器客户端,否则继续监控。
上述现有技术是通过在连接空闲时挂起连接的方式,来达到减轻服务器负荷的目的,但仍然是基于http协议的服务器进行即时通讯,依旧存在服务器负荷较重、网络流量浪费、电能损耗大等缺点。
发明内容
针对上述问题,本发明公开了一种基于MQTT协议的聊天方法,该聊天方法具体包括如下步骤:
S1:获取第一用户的身份ID信息;
S2:根据上述第一用户的身份ID信息,与MQTT服务器进行连接;
S3:创建会话窗口并与上述会话窗口内的用户进行会话。
进一步的,上述步骤S1包括:
S11:获取第一用户的注册信息;
S12:发送第一用户的注册信息至MQTT服务器;
S13:接收MQTT服务器所生成的第一用户的身份ID信息。
进一步的,上述步骤S2包括:
S21:根据第一用户的身份ID信息,与所述MQTT服务器进行长连接;
S22:预置on_message回调函数。
进一步的,上述步骤S3包括:
判断是否与第二用户进行单独聊天;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川斐讯信息技术有限公司,未经四川斐讯信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810672487.6/2.html,转载请声明来源钻瓜专利网。