CN112751842A - 一种高性能的即时通讯方法 - Google Patents

一种高性能的即时通讯方法 Download PDF

Info

Publication number
CN112751842A
CN112751842A CN202011561855.3A CN202011561855A CN112751842A CN 112751842 A CN112751842 A CN 112751842A CN 202011561855 A CN202011561855 A CN 202011561855A CN 112751842 A CN112751842 A CN 112751842A
Authority
CN
China
Prior art keywords
message
protocol
http
server
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011561855.3A
Other languages
English (en)
Inventor
麦淼
曾文
罗小龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Southern New Media Technology Co ltd
Original Assignee
Guangdong Southern New Media Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Southern New Media Technology Co ltd filed Critical Guangdong Southern New Media Technology Co ltd
Priority to CN202011561855.3A priority Critical patent/CN112751842A/zh
Publication of CN112751842A publication Critical patent/CN112751842A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于即时通讯领域,涉及一种高性能的即时通讯方法,即底层基于TCP/IP网络协议族,利用netty高性能的异步的事件驱动等特性构建高性能聊天服务器;本发明自行实现适配websocket协议、http协议,可根据不同的协议信息适配不同的处理器,不同协议消息无缝转换;自行实现ssl通讯加密,确保数据传输安全性,消息密文传输;提供即时通讯能力的同时,也支持http常规接口通讯,屏蔽技术框架controller层业务代码;实现多客户的同时在线及消息漫游;以上技术发明已应用到实际业务中投入使用,并持续发挥价值,赋能智媒云建设。

Description

一种高性能的即时通讯方法
技术领域
本发明属于即时通讯领域,涉及一种高性能的即时通讯方法。
背景技术
即时通讯领域较为广泛,利用长连接的特性,可以应用在视频会议、聊天、私信、互动、弹幕等场景。在此发明中,主要用于实时聊天,并确保消息可靠度,赋能业务***。目前业界聊天是使用轮询来实现,该方式存在消息送达延迟用户体验不好、浪费服务器资源和带宽资源、不利于扩展多应用接入。
发明内容
本发明针对上述存在的不足点,在netty、websocket技术栈的基础上,本发明通过建立长连接实现了实时聊天,消息实时送达用户、不发送无用请求最大化的利用了服务器和带宽资源,并通过自定义协议增加租户的属性,实现了多应用的快速接。
为了达到上述目的,本发明采用的技术方案为,
一种高性能的即时通讯方法,依次包括客户端消息发送、SSL通讯加密、聊天服务端接收消息、多协议处理,最终实现多客户的同时在线及消息漫游。
作为优选,依次包括客户端消息发送、SSL通讯加密、聊天服务端接收消息、多协议处理、接口适配、消息适配,最终实现多客户的同时在线及消息漫游;
上述步骤具体为:
所述客户端消息发送则为客户端发送密文消息;
所述SSL通讯加密则为客户端经过网络传输到达服务端,经过网络传输到达服务端;
所述多协议处理则为将websocket协议、netty协议、http协议进行融合,统一通过适配协议、数据统一内存共享,集成至同一个服务;即服务端收取到消息后,会触发channelRead事件,当数据到达后,eventLoop被唤醒继而调用channelRead方法做协议解析,根据请求类型解析判断是http协议还是WebSocket协议,如果是HTTP协议类型的请求消息,解析报文协议头信息,根据不同的协议处理不同的业务,则交由相应的处理器处理,如果是websocket协议,则分发到给相应的webSocket处理器处理。
作为优选,所述客户端则为web浏览器或app。
作为优选,其APP端/web端加密传输:发送消息时,客户端先使用AES对称方式对明文消息进行加密成密文,密文再传送到后端。
作为优选,所述接口适配则为:在im服务应用场景中,有很多需要使用http服务的场景情况,使用已有http服务容器存在需要再发布1个端口的缺点,通过自实现http服务容器,结合springMvc优势和已有能力,实现了单个端口同时提供im实时通讯服务和im http服务。
作为优选,所述消息适配则为:客户端(app、web)登录im成功后,传递最后一条消息记录给到服务端,服务端会返回这条消息之后的所有新消息;服务端收到信消息后,检查终端用户是否在线,如果在线则执行同步推送,且会记录是否成功,如若失败,程序会重试3次;对于推送成功的消息进入到预成功队列,直至收到客户端回执成功的信息后,才从预成功队列移除,否则im服务端重试推送消息;此外,Web端还提供im断线后自动重连机制。
与现有技术相比,本发明的优点和积极效果在于,
1、本发明自行实现适配websocket协议、http协议,可根据不同的协议信息适配不同的处理器,不同协议(web端的websocket协议、app端的http协议)消息无缝转换;自行实现ssl通讯加密,确保数据传输安全性,消息密文传输;提供即时通讯能力的同时,也支持http常规接口通讯,屏蔽技术框架controller层业务代码;实现多客户的同时在线及消息漫游;
2、本发明已应用到实际业务中投入使用,并持续发挥价值,赋能智媒云建设。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为高性能的即时通讯方法中SSL通讯加密部分的流程图;
图2为高性能的即时通讯方法中客户端拉取消息的流程图;
图3为高性能的即时通讯方法的流程图;
图4为高性能的即时通讯方法中接口适配的流程图;
图5为高性能的即时通讯方法中消息适配的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和实施例对本发明做进一步说明。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开说明书的具体实施例的限制。
实施例1,如图1-图5所示,本发明提供了一种高性能的即时通讯方法,底层基于TCP/IP网络协议族,利用netty高性能的异步的事件驱动等特性构建高性能聊天服务器。
本发明从客户端消息发送、SSL通讯加密、聊天服务端接收消息、多协议处理、接口适配、消息适配,最终实现多客户的同时在线及消息漫游。各流程实现流程如下:
1、客户端(web浏览器/app)发送密文消息;
2、消息安全性方面:经过SSL通讯加密(所有客户端消息均经过密文传输),经过网络传输到达服务端;APP端/web端加密传输:发送消息时,客户端先使用AES对称方式对明文消息进行加密成密文,密文再传送到后端。
结合图1和上述描述对加密过程进行详细描述,说明:
明文P:未经过加密的聊天数据。
秘钥K:用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再通过网络传输给对方,或者直接面对面商量密钥。
AES加密函数:假定AES加密函数为E,则C=E(K,P),其中P为明文,K为密钥,C为密文。即把明文P和密钥K作为加密函数的参数输入,则加密函数E会输出密文C。
密文C:经加密函数处理后的数据。
AES解密函数:假定AES解密函数为D,则P=D(K,C),其中C为密文,K为密钥,P为明文。也就是说,把密文C和密钥K作为解密函数的参数输入,则解密函数会输出明文P。
3、协议适配方面:传统方式会对websocket协议、netty协议、http协议进行单独处理、在服务间进行后台通讯,达到数据共享的目标,协议较多通讯格式较为混乱。本发明将三者协议融合,统一通过适配协议、数据统一内存共享,集成至同一个服务,实现了减少开发成本数据交互更快速的目标。服务端收取到消息后,会触发channelRead事件,当数据到达后,eventLoop被唤醒继而调用channelRead方法做协议解析,根据请求类型解析判断是http协议还是WebSocket协议,如果是HTTP协议类型的请求消息,解析报文协议头信息,根据不同的协议处理不同的业务,则交由相应的处理器处理;如果是websocket协议则分发到给相应的webSocket处理器处理。
4、技术源码改造创新方面:***因为自定义应用层协议,在需要对外提供http接口服务时,会大大增加开发成本,借鉴spring设计理念,spring技术为现有成熟技术,本发明在此基础上,利用反射特性,此特性是成熟稳定的技术,在此基础上,兼容并屏蔽了spring框架的controller层业务代码;
5、消息可靠性方面:在im通讯中因为服务器异常、网络抖动、或者客户端异常等都会导致消息未投递时有发生,本发明通过对消息重传、客户端服务端双重方式保证了消息的可靠投递。
如图2所示,客户端拉取消息:客户端(app、web)登录im成功后,传递最后一条消息记录给到服务端,服务端会返回这条消息之后的所有新消息;服务端收到信消息后,检查终端用户是否在线,如果在线则执行同步推送,且会记录是否成功,如若失败,程序会重试3次,以此来确保消息一致性,可靠性。对于推送成功的消息进入到预成功队列(此时还未收到客户端成功的回执),直至收到客户端回执成功的信息后,才从预成功队列移除,否则im服务端重试推送消息。此外,Web端还提供im断线后自动重连机制,确保了***的稳定性。
6、多客户的同时在线及消息漫游方面:如图3所示,随着移动互联网的高速发展,在实际应用场景中,用户存在需要多端同时在线的需求,目前业界针对这种场景尚未有统一的解决方案,本发明考虑到这种场景,实现了多设备多终端的同时在线,保证用户不会被踢出登录,同一用户在APP端及web端可以同时在线,同步共享消息,均能确保够拉取到所有的聊天历史记录。
6、接口适配:如图4所示,在im服务应用场景中,有很多需要使用http服务的场景情况,使用已有http服务容器存在需要再发布1个端口的缺点,本发明通过自实现http服务容器,结合springMvc优势和已有能力,实现了单个端口同时提供im实时通讯服务和imhttp服务,减少了客户端对接难度、服务器端口占用。
7、消息适配:如图5所示,在im服务的交互场景中。需要提供多种消息类型的通讯,例如:发送消息、服务端回执、客户端回执、http接口;再进一步细分例如:群聊操作、发送图片视频、撤回消息等等。在消息类型种类多、结构复杂、扩展性要求高的情况下,本发明通过使用适配器模式对消息的适配,实现了消息分发的便捷性、扩展的方便性。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

Claims (6)

1.一种高性能的即时通讯方法,其特征在于,依次包括客户端消息发送、SSL通讯加密、聊天服务端接收消息、多协议处理,最终实现多客户的同时在线及消息漫游。
2.根据权利要求1所述的高性能的即时通讯方法,其特征在于,依次包括客户端消息发送、SSL通讯加密、聊天服务端接收消息、多协议处理、接口适配、消息适配,最终实现多客户的同时在线及消息漫游;
上述步骤具体为:
所述客户端消息发送则为客户端发送密文消息;
所述SSL通讯加密则为客户端经过网络传输到达服务端,经过网络传输到达服务端;
所述多协议处理则为将websocket协议、netty协议、http协议进行融合,统一通过适配协议、数据统一内存共享,集成至同一个服务;即服务端收取到消息后,会触发channelRead事件,当数据到达后,eventLoop被唤醒继而调用channelRead方法做协议解析,根据请求类型解析判断是http协议还是WebSocket协议,如果是HTTP协议类型的请求消息,解析报文协议头信息,根据不同的协议处理不同的业务,则交由相应的处理器处理,如果是websocket协议,则分发到给相应的webSocket处理器处理。
3.根据权利要求2所述的高性能的即时通讯方法,其特征在于,所述客户端则为web浏览器或app。
4.根据权利要求3所述的高性能的即时通讯方法,其特征在于,其APP端/web端加密传输:发送消息时,客户端先使用AES对称方式对明文消息进行加密成密文,密文再传送到后端。
5.根据权利要求4所述的高性能的即时通讯方法,其特征在于,所述接口适配则为:在im服务应用场景中,有很多需要使用http服务的场景情况,使用已有http服务容器存在需要再发布1个端口的缺点,通过自实现http服务容器,结合springMvc优势和已有能力,实现了单个端口同时提供im实时通讯服务和im http服务。
6.根据权利要求5所述的高性能的即时通讯方法,其特征在于,所述消息适配则为:客户端(app、web)登录im成功后,传递最后一条消息记录给到服务端,服务端会返回这条消息之后的所有新消息;服务端收到信消息后,检查终端用户是否在线,如果在线则执行同步推送,且会记录是否成功,如若失败,程序会重试3次;对于推送成功的消息进入到预成功队列,直至收到客户端回执成功的信息后,才从预成功队列移除,否则im服务端重试推送消息;此外,Web端还提供im断线后自动重连机制。
CN202011561855.3A 2020-12-25 2020-12-25 一种高性能的即时通讯方法 Pending CN112751842A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011561855.3A CN112751842A (zh) 2020-12-25 2020-12-25 一种高性能的即时通讯方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011561855.3A CN112751842A (zh) 2020-12-25 2020-12-25 一种高性能的即时通讯方法

Publications (1)

Publication Number Publication Date
CN112751842A true CN112751842A (zh) 2021-05-04

Family

ID=75645977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011561855.3A Pending CN112751842A (zh) 2020-12-25 2020-12-25 一种高性能的即时通讯方法

Country Status (1)

Country Link
CN (1) CN112751842A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114286039A (zh) * 2021-12-29 2022-04-05 富盛科技股份有限公司 一种音视频通话方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111347A (zh) * 2011-02-28 2011-06-29 东南大学 融合通信***中基于多协议即时消息的处理方法和***
CN202488489U (zh) * 2012-02-22 2012-10-10 上海电信科技发展有限公司 融合通信业务托管平台
CN103139051A (zh) * 2013-03-22 2013-06-05 南京信通科技有限责任公司 一种基于Websocket协议的即时通讯方法
CN103297445A (zh) * 2012-02-22 2013-09-11 ***通信集团公司 一种基于IP多媒体网络的Web终端通信方法和***
CN105763426A (zh) * 2016-04-12 2016-07-13 北京理工大学 一种基于多协议即时通信***的物联网业务处理***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111347A (zh) * 2011-02-28 2011-06-29 东南大学 融合通信***中基于多协议即时消息的处理方法和***
CN202488489U (zh) * 2012-02-22 2012-10-10 上海电信科技发展有限公司 融合通信业务托管平台
CN103297445A (zh) * 2012-02-22 2013-09-11 ***通信集团公司 一种基于IP多媒体网络的Web终端通信方法和***
CN103139051A (zh) * 2013-03-22 2013-06-05 南京信通科技有限责任公司 一种基于Websocket协议的即时通讯方法
CN105763426A (zh) * 2016-04-12 2016-07-13 北京理工大学 一种基于多协议即时通信***的物联网业务处理***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114286039A (zh) * 2021-12-29 2022-04-05 富盛科技股份有限公司 一种音视频通话方法及***

Similar Documents

Publication Publication Date Title
US10135771B2 (en) Secure end-to-end transport through intermediary nodes
US9344405B1 (en) Optimized transport layer security
US7254237B1 (en) System and method for establishing a secure connection
EP2271995B1 (en) Real-time communications over data forwarding framework
US7840651B2 (en) Client-server emulation supporting multicast transmissions of media objects
US7738887B2 (en) Voice instant messaging between mobile and computing devices
US8386585B2 (en) Real-time communications over data forwarding framework
CN110213652B (zh) 一种音视频数据传输方法、装置及存储介质
US20080056494A1 (en) System and method for establishing a secure connection
CN112615899A (zh) 一种大文件传输方法、装置及***
CN112866090B (zh) 一种融合区块链及点对点通讯的即时通讯***及方法
CN113162989A (zh) 一种基于MQTT-WebSocket的消息收发方法
CN112152914A (zh) 一种基于北斗短报文的即时通信方法以及***
US11706290B2 (en) Direct server reply for infrastructure services
CN112751842A (zh) 一种高性能的即时通讯方法
US20110055894A1 (en) Firewall and NAT Traversal for Social Networking and/or Content Sharing On Mobile Devices
EP3568964B1 (fr) Procédé de transmission d'une information numérique chiffrée de bout en bout et système mettant en oeuvre ce procédé
CN112333088B (zh) 一种兼容性即时通信传输方法
CN111835688A (zh) 一种基于ssl/tls协议的流量快速转发方法及***
CN113572678A (zh) 一种基于websocket实现的即时通讯方法
US20130024543A1 (en) Methods for generating multiple responses to a single request message and devices thereof
CN110995730B (zh) 数据传输方法、装置、代理服务器和代理服务器集群
Nie An open standard for instant messaging: eXtensible Messaging and Presence Protocol (XMPP)
CN110830366A (zh) 军工领域消息推送***
CN113098864B (zh) 一种数据传输***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 26th Floor, Building A, News Center, No. 289 Guangzhou Avenue Middle, Yuexiu District, Guangzhou City, Guangdong Province, 510699

Applicant after: Guangdong Southern Intelligent Media Technology Co.,Ltd.

Address before: 510000 room 306, 3 / F, news center, 289 Guangzhou Avenue central, Yuexiu District, Guangzhou City, Guangdong Province

Applicant before: Guangdong Southern New Media Technology Co.,Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20210504

RJ01 Rejection of invention patent application after publication