CN109831404A - 一种兼容多终端的即时通讯***及方法 - Google Patents
一种兼容多终端的即时通讯***及方法 Download PDFInfo
- Publication number
- CN109831404A CN109831404A CN201711181627.1A CN201711181627A CN109831404A CN 109831404 A CN109831404 A CN 109831404A CN 201711181627 A CN201711181627 A CN 201711181627A CN 109831404 A CN109831404 A CN 109831404A
- Authority
- CN
- China
- Prior art keywords
- server
- agreement
- terminal
- nodejs
- netty
- 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.)
- Granted
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种兼容多终端的即时通讯***,包括Netty服务器、NodeJS服务器、计算机终端和移动终端;所述计算机终端用于通过WebSocket协议与所述NodeJS服务器通讯;所述Netty服务器用于通过Socket协议与所述NodeJS服务器通讯;所述NodeJS服务器用于将所述WebSocket协议与所述Socket协议互相转换,使所述Netty服务器与所述计算机终端通讯;所述移动终端用于通过所述Socket协议与所述Netty服务器通讯。本发明还公开了一种兼容多终端的即时通讯方法。本发明能够简单高效地实现多终端即时通讯。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种兼容多终端的即时通讯***及方法。
背景技术
即时通讯应用在人类生活工作中已经成为必不可少的工具,使用频率极高,甚至工作都需要这些即时通讯工具进行沟通交流,而我们身边有很多手机应用或企业***都是支持即时通讯的,然而传统的即时通讯框架技术落后,通讯的效率和安全性不高的同时,还只能支持单一终端,如基于HTTP的PC在线聊天室类型。像微信、QQ等虽然有PC端和移动端,但其后端框架庞大、复杂,自然维护成本也高,对于一些中小企业来说门槛较高。基于目前这样的情况,急需开发一种简单高效的兼容多终端的即时通信***。
发明内容
本发明针对现有技术中存在的问题,提供了一种兼容多终端的即时通讯***及方法,能够简单高效地实现多终端即时通讯。
本发明就上述技术问题而提出的技术方案如下:
一方面,本发明提供一种兼容多终端的即时通讯***,包括Netty服务器、NodeJS服务器、计算机终端和移动终端;
所述计算机终端用于通过WebSocket协议与所述NodeJS服务器通讯;
所述Netty服务器用于通过Socket协议与所述NodeJS服务器通讯;
所述NodeJS服务器用于将所述WebSocket协议与所述Socket协议互相转换,使所述Netty服务器与所述计算机终端通讯;
所述移动终端用于通过所述Socket协议与所述Netty服务器通讯。
进一步地,所述NodeJS服务器具体用于:
部署一个Http Web Server,借助socket.io在Http协议上创建WebSocket协议,以通过所述WebSocket协议与所述计算机终端通讯。
进一步地,所述NodeJS服务器具体用于:
接收所述计算机终端的浏览器发送的连接请求,与所述计算机终端建立WebSocket连接,并为所述WebSocket连接创建一个识别码,根据所述识别码向所述Netty服务器发起一个Socket连接,并监听数据回传事件,实现所述Netty服务器与所述计算机终端的通讯。
进一步地,所述计算机终端还用于:
在与所述NodeJS服务器通讯时,通过protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
进一步地,所述NodeJS服务器还用于:
将所述计算机终端传输的二进制数据解密为所述消息,并在协议转换后与所述Netty服务器通讯时,通过所述protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
另一方面,本发明提供一种兼容多终端的即时通讯方法,包括:
NodeJS服务器通过WebSocket协议与计算机终端通讯;
所述NodeJS服务器通过Socket协议与Netty服务器通讯;
所述NodeJS服务器将所述WebSocket协议与所述Socket协议互相转换,使所述Netty服务器与所述计算机终端通讯;
移动终端通过所述Socket协议与所述Netty服务器通讯。
进一步地,所述NodeJS服务器通过WebSocket协议与计算机终端通讯,具体包括:
所述NodeJS服务器部署一个Http Web Server,借助socket.io在Http协议上创建WebSocket协议,以通过所述WebSocket协议与所述计算机终端通讯。
进一步地,所述所述NodeJS服务器将所述WebSocket协议与所述Socket协议互相转换,使所述Netty服务器与所述计算机终端通讯,具体包括:
所述NodeJS服务器接收所述计算机终端的浏览器发送的连接请求,与所述计算机终端建立WebSocket连接;
所述NodeJS服务器为所述WebSocket连接创建一个识别码,根据所述识别码向所述Netty服务器发起一个Socket连接,并监听数据回传事件,实现所述Netty服务器与所述计算机终端的通讯。
进一步地,所述方法还包括:
所述计算机终端在与所述NodeJS服务器通讯时,通过protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
进一步地,所述方法还包括:
所述NodeJS服务器将所述计算机终端传输的二进制数据解密为所述消息,并在协议转换后与所述Netty服务器通讯时,通过所述protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
本发明实施例提供的技术方案带来的有益效果是:
Netty服务器Netty作为主通讯服务,可通过Socket协议直接连接各移动终端进行通讯,而计算机终端不支持直接Socket协议,通过NodeJS服务器实现WebSocket协议与Socket协议的相互转换,使Netty服务器与计算机终端通讯,从而实现多终端的即时通讯,简单高效,且成本低廉,有助于支持多终端通信且需要控制研发成本的中小型企业快速搭建即时通信服务。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的兼容多终端的即时通讯***的结构示意图;
图2是本发明实施例提供的兼容多终端的即时通讯***的具体结构示意图;
图3是本发明实施例提供的兼容多终端的即时通讯方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种兼容多终端的即时通讯***,参见图1,包括Netty服务器1、NodeJS服务器2、计算机终端3和移动终端4;
所述计算机终端3用于通过WebSocket协议与所述NodeJS服务器2通讯;
所述Netty服务器1用于通过Socket协议与所述NodeJS服务器2通讯;
所述NodeJS服务器2用于将所述WebSocket协议与所述Socket协议互相转换,使所述Netty服务器1与所述计算机终端3通讯;
所述移动终端4用于通过所述Socket协议与所述Netty服务器1通讯。
需要说明的是,由于Netty服务器无法同时开启两种协议通道,即要么只支持移动终端,如手机、平板电脑等,要么只支持计算机终端,如PC端的浏览器等,因此在不影响Netty服务器与移动终端通讯的前提下,通过在Netty服务器与计算机终端之间加入NodeJS协议转化服务,作为桥梁的方式巧妙地兼容计算机终端的通讯支持,实现多终端通讯。
在通讯前,搭建Netty主通讯服务,即Netty服务器,并搭建NodeJS协议转化服务,即NodeJS服务器,使其作为Netty服务器的一个终端来连接,再把消息分发出去。计算机终端的浏览器利用socket.io通过WebSocket协议与NodeJS服务器通讯,其他移动终端利用原生接口通过Socket协议直接与Netty服务器通讯。
另外,NodeJS服务器的设计方式为插拔式,若要支持计算机终端的浏览器,启动NodeJS服务即可,不影响其他移动终端的使用。本实施例结构简单,服务器间的依耐性低,简单高效。
进一步地,所述NodeJS服务器具体用于:
部署一个Http Web Server,借助socket.io在Http协议上创建WebSocket协议,以通过所述WebSocket协议与所述计算机终端通讯。
进一步地,所述NodeJS服务器具体用于:
接收所述计算机终端的浏览器发送的连接请求,与所述计算机终端建立WebSocket连接,并为所述WebSocket连接创建一个识别码,根据所述识别码向所述Netty服务器发起一个Socket连接,并监听数据回传事件,实现所述Netty服务器与所述计算机终端的通讯。
需要说明的是,在计算机终端的浏览器向NodeJS服务器发送一个新连接事件,即连接请求时,NodeJS服务器建立与计算机终端的WebSocket连接,并为该WebSocket连接创建一个识别码ID,然后用此ID同时向Netty服务器发起一个新的Socket连接,保证每个浏览器都对应Netty服务器上的一个实例,从而实现双向通讯。如图2所示,每个计算机终端3的浏览器与NodeJS服务器2分别建立有一个WebSocket连接,WebSocket连接在网络通畅时自动连接,无需认为管理。而NodeJS服务器2中分别针对每个连接设有一个数据交换通道,实现协议转换,进而针对每个数据交换通道,与Netty服务器1建立相应的Socket连接,从而保证每个浏览器的连接请求都会生成并维持一个Socket连接,此连接支持断线重连功能。
计算机终端的浏览器借助HTML5的新特性WebSocket协议可以很方便地实现全双工通讯,只需要绑定NodeJS服务即可。对于一些不支持WebSocket的传统浏览器也可以通过HTTP轮询的方式来实现相同的功能,这里socket.io已支持,无须再封装一遍,使用简单。
进一步地,所述计算机终端还用于:
在与所述NodeJS服务器通讯时,通过protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
进一步地,所述NodeJS服务器还用于:
将所述计算机终端传输的二进制数据解密为所述消息,并在协议转换后与所述Netty服务器通讯时,通过所述protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
需要说明的是,不管在哪个领域通讯安全都是非常重要的,不管是用户的隐私信息还是企业的机密信息,一旦泄漏将造成重大的损失。考虑到通讯安全,又考虑到数据传输的高效性,本实施例综合使用了protobuf协议为消息加密并传输,以将消息转化成二进制数据来传输。使用二进制数据进行传输比使用明文的文本数据占用更小带宽容量,而且二进制数据即使被截获,若没有私钥则无法解码出来,而私钥存在于HTTPS服务器上。
另外,在即时通讯中,用户的聊天信息量是巨大的,整个通讯***承载的用户量如果以千万级,甚至微信QQ这种亿级的通讯工具,瞬时的数据交换量和并发量是非常巨大的,为了进一步提高性能,本实施例选用NodeJS平台为搭建协议转化服务的服务器,具有并发性高、占用内存少、代码量少而简单的特点,对于日常的通讯能够轻松应对。
本发明实施例Netty服务器Netty作为主通讯服务,可通过Socket协议直接连接各移动终端进行通讯,而计算机终端不支持直接Socket协议,通过NodeJS服务器实现WebSocket协议与Socket协议的相互转换,使Netty服务器与计算机终端通讯,从而实现多终端的即时通讯,简单高效,且成本低廉,有助于支持多终端通信且需要控制研发成本的中小型企业快速搭建即时通信服务。
本发明实施例提供了一种兼容多终端的即时通讯方法,能够应用于上述兼容多终端的即时通讯***中,参见图3,所述方法包括:
S1、NodeJS服务器通过WebSocket协议与计算机终端通讯;
S2、所述NodeJS服务器通过Socket协议与Netty服务器通讯;
S3、所述NodeJS服务器将所述WebSocket协议与所述Socket协议互相转换,使所述Netty服务器与所述计算机终端通讯;
S4、移动终端通过所述Socket协议与所述Netty服务器通讯。
进一步地,所述NodeJS服务器通过WebSocket协议与计算机终端通讯,具体包括:
所述NodeJS服务器部署一个Http Web Server,借助socket.io在Http协议上创建WebSocket协议,以通过所述WebSocket协议与所述计算机终端通讯。
进一步地,所述所述NodeJS服务器将所述WebSocket协议与所述Socket协议互相转换,使所述Netty服务器与所述计算机终端通讯,具体包括:
所述NodeJS服务器接收所述计算机终端的浏览器发送的连接请求,与所述计算机终端建立WebSocket连接;
所述NodeJS服务器为所述WebSocket连接创建一个识别码,根据所述识别码向所述Netty服务器发起一个Socket连接,并监听数据回传事件,实现所述Netty服务器与所述计算机终端的通讯。
进一步地,所述方法还包括:
所述计算机终端在与所述NodeJS服务器通讯时,通过protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
进一步地,所述方法还包括:
所述NodeJS服务器将所述计算机终端传输的二进制数据解密为所述消息,并在协议转换后与所述Netty服务器通讯时,通过所述protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
本发明实施例Netty服务器Netty作为主通讯服务,可通过Socket协议直接连接各移动终端进行通讯,而计算机终端不支持直接Socket协议,通过NodeJS服务器实现WebSocket协议与Socket协议的相互转换,使Netty服务器与计算机终端通讯,从而实现多终端的即时通讯,简单高效,且成本低廉,有助于支持多终端通信且需要控制研发成本的中小型企业快速搭建即时通信服务。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种兼容多终端的即时通讯***,其特征在于,包括Netty服务器、NodeJS服务器、计算机终端和移动终端;
所述计算机终端用于通过WebSocket协议与所述NodeJS服务器通讯;
所述Netty服务器用于通过Socket协议与所述NodeJS服务器通讯;
所述NodeJS服务器用于将所述WebSocket协议与所述Socket协议互相转换,使所述Netty服务器与所述计算机终端通讯;
所述移动终端用于通过所述Socket协议与所述Netty服务器通讯。
2.如权利要求1所述的兼容多终端的即时通讯***,其特征在于,所述NodeJS服务器具体用于:
部署一个Http Web Server,借助socket.io在Http协议上创建WebSocket协议,以通过所述WebSocket协议与所述计算机终端通讯。
3.如权利要求2所述的兼容多终端的即时通讯***,其特征在于,所述NodeJS服务器具体用于:
接收所述计算机终端的浏览器发送的连接请求,与所述计算机终端建立WebSocket连接,并为所述WebSocket连接创建一个识别码,根据所述识别码向所述Netty服务器发起一个Socket连接,并监听数据回传事件,实现所述Netty服务器与所述计算机终端的通讯。
4.如权利要求1所述的兼容多终端的即时通讯***,其特征在于,所述计算机终端还用于:
在与所述NodeJS服务器通讯时,通过protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
5.如权利要求4所述的兼容多终端的即时通讯***,其特征在于,所述NodeJS服务器还用于:
将所述计算机终端传输的二进制数据解密为所述消息,并在协议转换后与所述Netty服务器通讯时,通过所述protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
6.一种兼容多终端的即时通讯方法,其特征在于,包括:
NodeJS服务器通过WebSocket协议与计算机终端通讯;
所述NodeJS服务器通过Socket协议与Netty服务器通讯;
所述NodeJS服务器将所述WebSocket协议与所述Socket协议互相转换,使所述Netty服务器与所述计算机终端通讯;
移动终端通过所述Socket协议与所述Netty服务器通讯。
7.如权利要求6所述的兼容多终端的即时通讯方法,其特征在于,所述NodeJS服务器通过WebSocket协议与计算机终端通讯,具体包括:
所述NodeJS服务器部署一个Http Web Server,借助socket.io在Http协议上创建WebSocket协议,以通过所述WebSocket协议与所述计算机终端通讯。
8.如权利要求7所述的兼容多终端的即时通讯方法,其特征在于,所述所述NodeJS服务器将所述WebSocket协议与所述Socket协议互相转换,使所述Netty服务器与所述计算机终端通讯,具体包括:
所述NodeJS服务器接收所述计算机终端的浏览器发送的连接请求,与所述计算机终端建立WebSocket连接;
所述NodeJS服务器为所述WebSocket连接创建一个识别码,根据所述识别码向所述Netty服务器发起一个Socket连接,并监听数据回传事件,实现所述Netty服务器与所述计算机终端的通讯。
9.如权利要求6所述的兼容多终端的即时通讯方法,其特征在于,所述方法还包括:
所述计算机终端在与所述NodeJS服务器通讯时,通过protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
10.如权利要求9所述的兼容多终端的即时通讯方法,其特征在于,所述方法还包括:
所述NodeJS服务器将所述计算机终端传输的二进制数据解密为所述消息,并在协议转换后与所述Netty服务器通讯时,通过所述protobuf协议对消息进行加密,以将所述消息转换为二进制数据进行传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711181627.1A CN109831404B (zh) | 2017-11-23 | 2017-11-23 | 一种兼容多终端的即时通讯***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711181627.1A CN109831404B (zh) | 2017-11-23 | 2017-11-23 | 一种兼容多终端的即时通讯***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109831404A true CN109831404A (zh) | 2019-05-31 |
CN109831404B CN109831404B (zh) | 2021-08-03 |
Family
ID=66859260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711181627.1A Active CN109831404B (zh) | 2017-11-23 | 2017-11-23 | 一种兼容多终端的即时通讯***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109831404B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110912803A (zh) * | 2019-11-14 | 2020-03-24 | 富途网络科技(深圳)有限公司 | 一种im消息传输方法及终端 |
CN111294399A (zh) * | 2020-02-04 | 2020-06-16 | 网宿科技股份有限公司 | 一种数据传输方法和装置 |
CN113038090A (zh) * | 2021-05-24 | 2021-06-25 | 武汉中科通达高新技术股份有限公司 | 一种传输链路管理方法和*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101137079A (zh) * | 2007-09-27 | 2008-03-05 | 腾讯科技(深圳)有限公司 | 一种基于移动终端融合网页浏览与即时通信的方法及设备 |
US20130232223A1 (en) * | 2012-03-02 | 2013-09-05 | Realtek Semiconductor Corp. | Cross-platform multimedia interaction system with multiple displays and dynamically-configured hierarchical servers and related method, electronic device and computer program product |
CN107370663A (zh) * | 2017-07-03 | 2017-11-21 | 中国南方电网有限责任公司 | 一种浏览器即时通讯服务分布式部署方法 |
-
2017
- 2017-11-23 CN CN201711181627.1A patent/CN109831404B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101137079A (zh) * | 2007-09-27 | 2008-03-05 | 腾讯科技(深圳)有限公司 | 一种基于移动终端融合网页浏览与即时通信的方法及设备 |
US20130232223A1 (en) * | 2012-03-02 | 2013-09-05 | Realtek Semiconductor Corp. | Cross-platform multimedia interaction system with multiple displays and dynamically-configured hierarchical servers and related method, electronic device and computer program product |
CN107370663A (zh) * | 2017-07-03 | 2017-11-21 | 中国南方电网有限责任公司 | 一种浏览器即时通讯服务分布式部署方法 |
Non-Patent Citations (2)
Title |
---|
LINK: "在 NodeJS 中玩转 Protocol Buffer", 《腾讯云》 * |
黄经赢: "基于Socket.io+Node.js+Redis 构建高效即时通讯***", 《开发案例》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110912803A (zh) * | 2019-11-14 | 2020-03-24 | 富途网络科技(深圳)有限公司 | 一种im消息传输方法及终端 |
CN110912803B (zh) * | 2019-11-14 | 2022-03-08 | 富途网络科技(深圳)有限公司 | 一种im消息传输方法及终端 |
CN111294399A (zh) * | 2020-02-04 | 2020-06-16 | 网宿科技股份有限公司 | 一种数据传输方法和装置 |
CN111294399B (zh) * | 2020-02-04 | 2023-06-23 | 网宿科技股份有限公司 | 一种数据传输方法和装置 |
CN113038090A (zh) * | 2021-05-24 | 2021-06-25 | 武汉中科通达高新技术股份有限公司 | 一种传输链路管理方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN109831404B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110289952B (zh) | 一种量子数据链保密终端及保密通信网络 | |
CN103108037B (zh) | 一种通信方法,Web服务器及Web通信*** | |
CN204350029U (zh) | 数据交互*** | |
CN101888597A (zh) | 手机终端移动oa*** | |
CN109831404A (zh) | 一种兼容多终端的即时通讯***及方法 | |
CN204392484U (zh) | 一种量子密钥加密无线对讲装置 | |
CN104660494B (zh) | 一种通信*** | |
CN103905435A (zh) | 一种前端页面与后端服务器通信方法 | |
CN106992908A (zh) | 一种智能家居管理***及其管理方法 | |
CN103916296A (zh) | 一种融合局域网的通信*** | |
CN105050082A (zh) | 语音通信方法及装置 | |
CN101202965B (zh) | 用于面向无连接的安全的点到点短消息的传输方法 | |
CN102137394A (zh) | 网络接入下加密移动通信终端***及方法 | |
CN104602208A (zh) | 一种基于移动网络的短信加密通信方法 | |
CN102480473A (zh) | 基于fsk的安全性信息交互***及方法 | |
CN103297300A (zh) | 一种移动智能终端与服务器端交互***及方法 | |
CN204887029U (zh) | 一种新型wifi芯片连接路由器的配置*** | |
CN105228114A (zh) | 一种基于电力故障定位***的加密短信收发***及方法 | |
CN108173868A (zh) | 一种一对多文件分发的方法、设备及存储设备 | |
CN107835150A (zh) | 一种全媒体客服调度方法及*** | |
CN101227277A (zh) | 一种基于wap1.2网关实现端到端的安全的***及其方法 | |
CN101958835B (zh) | 一种数据传输方法以及逻辑网络适配器 | |
CN103942484A (zh) | 一种以手机为载体的安全辅助设备及身份认证方法 | |
Pistek et al. | Using sms for communication with IoT devices | |
CN102111732A (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: 516000 the second floor of No.25 Hechang 2nd Road, Zhongkai hi tech Industrial Development Zone, Huizhou City, Guangdong Province Applicant after: Guangdong Zhenxiang cloud Internet of things Technology Co.,Ltd. Address before: Room 806, Guangdong Huizhou college students business incubator base, No.7, Huifeng seventh Road, Zhongkai high tech Zone, Huizhou City, Guangdong Province, 516000 Applicant before: HUIZHOU ZHENXIANGYUN CLOUD TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |