一种通信方式的实现方法、服务器以及客户端技术

技术编号:28429968 阅读:23 留言:0更新日期:2021-05-11 18:39
本发明专利技术公开了一种通信方式的实现方法、服务器以及客户端,先与客户端建立HTTP或者HTTPS连接,当需要建立WebSocket连接时通过HTTP或者HTTPS连接向客户端发送连接升级请求,并接受客户端通过HTTP或者HTTPS发送的WebSocket连接建立请求,因此能够按需动态地根据WebSocket连接建立请求将HTTP或者HTTPS连接升级为WebSocket连接,利用HTTP或者HTTPS的成熟开发框架和资源来建立WebSocket连接,能够延续传统的HTTP或者HTTPS的有效部署方式和开发方式,不必再引入全新的WebSocket的开发模式和部署模式,从而简化开发步骤,节省资源;并且能够实现HTTP或者HTTPS连接和WebSocket连接的切换,根据实际情况选择连接方式,提高传输效率以及通信连接的灵活性。

【技术实现步骤摘要】
一种通信方式的实现方法、服务器以及客户端
本专利技术涉及数据通信
,特别涉及一种通信方式的实现方法、服务器以及客户端。
技术介绍
现在网络通信通常采用TCP协议传输或者UDP协议传输。TCP传输通常用于需要可靠的传输服务,提供拥塞控制、差错控制和流量控制,UDP传输不需要建立连接,不提供流量控制、数据应答和状态维护,最大的优势就是快,不保证数据的正确性和顺序,常用于视频或者语音功能。基于TCP协议,在协议层有TCP心跳机制,也可以在TCP协议之上的应用层建立TCP应用心跳机制;基于无连接的UDP协议,在协议层无心跳机制,但可以基于UDP协议之上的应用层建立UDP应用心跳机制。在TCP协议之上,应用层协议有HTTP(超文本传输协议)、HTTPS(超文本传输安全协议)、FTP(文件传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等。HTTP或者HTTPS是一种用于分布式、协作式和超媒体信息系统的应用层协议,是互联网的数据通信的基础,得到广泛地应用。HTTP或者HTTPS协议是一种单向通信方式,连接建立的过程是单向的,只能由客户端发起连接请求,连接建立后,数据传输的发起也是单向的,只能由客户端发起数据传输请求,服务器再返回相应的信息。因此很多网站为了实现服务器端信息实时推送,通常采用轮询的技术:在特定的时间间隔,由客户端对服务器发出HTTP或者HTTPS请求,然后由服务器返回最新的数据给客户端。这种模式下,客户端需要不断地向服务器发出请求,然而HTTP或者HTTPS请求包含较长的头部,其中真正有效的数据只是很小的一部分,显然这样会浪费很多的带宽等资源。WebSocket的出现解决了这个问题,WebSocket协议同HTTP或者HTTPS协议一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的,通过WebSocket协议,客户端和服务器只需要完成一次握手,然后单独建立一条TCP的通信通道进行数据的传送,两者之间就可以直接创建持久性的连接,它使得客户端和服务器之间的数据交换变得更加简单,允许服务器主动向客户端推送数据,并进行双向数据传输。WebSocket连接建立过程的发起方是双向的,可以由客户端发起,也可以由服务器发起;WebSocket连接建立后,数据的主动传输也是双向的,可以由客户端主动向服务器发起数据传输请求,也可以由服务器主动向客户端发起数据传输请求。HTTP或者HTTPS连接一般用于客户端与服务器端进行短连接操作,即传输完数据后立刻中断连接,以节省客户端与服务器的CPU、内存及网络等资源的使用;同时,HTTP或者HTTPS连接,也可以采用长连接方式,即在一次数据传输完成后,仍然通过心跳机制保持连接状态,在下一次数据传输重复使用本次连接。WebSocket连接,由于在建立连接过程中以及使用过程中需要的服务器和客户端的资源较大,所以在实际应用中一般采用长连接的方式。HTTP或者HTTPS连接使用的客户端与服务器的CPU和内存资源较少,所需要的网络带宽资源也较小;WebSocket连接使用的客户端与服务器的CPU和内存资源较大。在实际应用中,一台服务器采用HTTP或者HTTPS连接可以同时连接几千台或者几万台客户端,经过一些特殊优化后,甚至可以同时连接几十万台客户端;而采用WebSocket连接一般只能连接上千台客户端。基于HTTP或者HTTPS协议的通信方式已经形成了一个稳定的编程模型和部署模型,得到了广泛应用,有大量的软件系统是基于此套编程模型和部署模型的基础上开发的;但在这个模式下难以实现服务器主动发送消息给客户端,所以为了实现服务器能够主动发送消息给客户端,现有一般采用服务器和客户端之间基于一套新的RPC(远程过程调用)模式的开发模型实现WebSocket的通信方式,但是现有实现的WebSocket通信方式使用的内存资源较大,且需要再服务器端与客户端都设置网络监听端口。在每台客户端上都设置网络监听端口,且需要在网络通道上的防火墙、路由器、VPN等设备上都配置对应的信息,这种配置过程非常繁琐且容易出错,同时也增大了网络非法访问的攻击面。
技术实现思路
本专利技术所要解决的技术问题是:提供一种通信方式的实现方法、服务器以及客户端,能够提高传输效率,减少资源消耗。为了解决上述技术问题,本专利技术采用的技术方案为:一种通信方式的实现方法,包括步骤:与客户端建立HTTP或者HTTPS连接;通过所述HTTP或者HTTPS连接向所述客户端发送连接升级请求;接收所述客户端基于接收到的所述连接升级请求通过所述HTTP或者HTTPS连接发送的WebSocket连接建立请求;根据所述WebSocket连接建立请求将所述HTTP或者HTTPS连接升级为WebSocket连接。为了解决上述技术问题,本专利技术采用的另一种技术方案为:一种服务器,包括第一存储器、第一处理器及存储在所述第一存储器上并可在所述第一处理器上运行的第一计算机程序,所述第一处理器执行所述第一计算机程序时实现上述通信方式的实现方法中的各个步骤。为了解决上述技术问题,本专利技术采用的另一种技术方案为:一种通信方式的实现方法,包括步骤:与服务器建立HTTP或者HTTPS连接;接收所述服务器通过所述HTTP或者HTTPS连接发送的连接升级请求;基于接收到的所述连接升级请求通过所述HTTP或者HTTPS连接向所述服务器发送WebSocket连接建立请求。为了解决上述技术问题,本专利技术采用的另一种技术方案为:一种客户端,包括第二存储器、第二处理器及存储在所述第二存储器上并可在所述第二处理器上运行的第二计算机程序,其特征在于,所述第二处理器执行所述第二计算机程序时实现上述通信方式的实现方法中的各个步骤。本专利技术的有益效果在于:先与客户端建立HTTP或者HTTPS连接,当需要建立WebSocket连接时通过HTTP或者HTTPS连接向客户端发送连接升级请求,并接受客户端通过HTTP或者HTTPS发送的WebSocket连接建立请求,因此能够按需动态地根据WebSocket连接建立请求将HTTP或者HTTPS连接升级为WebSocket连接,利用HTTP或者HTTPS的成熟开发框架和资源来建立WebSocket连接,能够延续传统的HTTP或者HTTPS的有效部署方式和开发方式,不必再引入全新的WebSocket的开发模式和部署模式,从而简化开发步骤,节省资源;并且能够实现HTTP或者HTTPS连接和WebSocket连接的自由切换,根据实际情况选择连接方式,提高传输效率以及通信连接的灵活性。同时,采用本专利技术的通信方式,只需要在服务器端设置一个网络监听端口即可,不需要在客户端设置网络监听端口,可以避免网络防火墙、路由器和VPN的设置工作,同时缩小了网络非法访问的攻击面。附图说明图1为本专利技术实施例提供的一种通信方式的实现方法的流程图;...

【技术保护点】
1.一种通信方式的实现方法,其特征在于,包括步骤:/n与客户端建立HTTP或者HTTPS连接;/n通过所述HTTP或者HTTPS连接向所述客户端发送连接升级请求;/n接收所述客户端基于接收到的所述连接升级请求通过所述HTTP或者HTTPS连接发送的WebSocket连接建立请求;/n根据所述WebSocket连接建立请求将所述HTTP或者HTTPS连接升级为WebSocket连接。/n

【技术特征摘要】
1.一种通信方式的实现方法,其特征在于,包括步骤:
与客户端建立HTTP或者HTTPS连接;
通过所述HTTP或者HTTPS连接向所述客户端发送连接升级请求;
接收所述客户端基于接收到的所述连接升级请求通过所述HTTP或者HTTPS连接发送的WebSocket连接建立请求;
根据所述WebSocket连接建立请求将所述HTTP或者HTTPS连接升级为WebSocket连接。


2.根据权利要求1所述的一种通信方式的实现方法,其特征在于,所述通过所述HTTP或者HTTPS连接向所述客户端发送连接升级请求包括:
接收所述客户端通过所述HTTP或者HTTPS连接发送的心跳信息;
通过所述HTTP或者HTTPS连接向所述客户端发送针对所述心跳信息的应答信息,所述应答信息中携带所述连接升级请求;
或者,接收所述客户端通过所述HTTP或者HTTPS连接发送的数据上传指令;
通过所述HTTP或者HTTPS连接向所述客户端发送针对所述数据上传指令的数据回传指令,所述数据回传指令中携带所述连接升级请求。


3.根据权利要求1或2所述的一种通信方式的实现方法,其特征在于,所述根据所述WebSocket连接建立请求将所述HTTP或者HTTPS连接升级为WebSocket连接之后还包括步骤:
通过所述WebSocket连接向所述客户端发送新建HTTP或者HTTPS连接建立请求;
接收所述客户端基于接收到的所述新建HTTP或者HTTPS连接请求通过所述WebSocket连接发送的HTTP或者HTTPS连接建立请求;
根据所述HTTP或者HTTPS连接建立请求新建HTTP或者HTTPS连接;
或者,接收所述客户端通过所述WebSocket连接发送的HTTP或者HTTPS连接建立请求;
根据所述HTTP或者HTTPS连接建立请求新建HTTP或者HTTPS连接。


4.根据权利要求1或2所述的一种通信方式的实现方法,其特征在于,所述根据所述WebSocket连接建立请求将所述HTTP或者HTTPS连接升级为WebSocket连接之后还包括步骤:
当无数据传输时或者所述HTTP或者HTTPS连接闲置时间超过预设时间时,向所述客户端发送中断所述HTTP或者HTTPS连接的请求,或者接收所述客户端发送的中断所述HTTP或者HTTPS连接的请求;
或者,当无数据传输时或者所述WebSocket连接闲置时间超过预设时间时,向所述客户端发送中断所述WebSocket连接的请求,或者接收所述客户端发送的中断所述WebSocket连接的请求。


5.一种服务器,包括第一存储器、第一处理器及存储在所述第一存储器上并可在所述第一处理器上运行的第一计算...

【专利技术属性】
技术研发人员:李杏萍郭道远
申请(专利权)人:深圳市位元领航科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1