一种用于榨汁机系统的后台通信方法以及后台通信系统与流程

文档序号:11930676阅读:243来源:国知局

本发明涉及榨汁机领域,尤其涉及一种用于榨汁机系统的后台通信方法以及后台通信系统。



背景技术:

榨汁机是一种水果榨汁设备,以水果为原料,提供现场榨汁服务,一般部署在机场,火车站等人流量很大场所。

榨汁机在工作过程中需要备料、故障处理、广告推送、系统更新、清洗,这此处理流程都基于服务器进行管理,此管理以榨汁机与服务器通信为基础。本系统就是为了解决服务器与榨汁机通信。一般的通信存在以下不足:服务器榨汁机管理平台架构为IIS通过HTTP协议为榨汁机客户端提供服务,而HTTP协议是一种无状态连接,在连接断开后服务器无法主动连接到客户端。

所以现有技术存在缺陷,需要改进。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种用于榨汁机系统的后台通信方法以及后台通信系统。

本发明解决其技术问题所采用的技术方案是:构造一种用于榨汁机系统的后台通信方法,包括:

S1、检测客户端是否支持HTML5;

S2、如果客户端支持HTML5,在服务器端创建WebSocket对象,与客户端建立通信会话,并通过该通信会话发送命令给客户端;客户端收到服务器端的命令后,通过请求WCF服务执行业务操作;

S3、如果客户端不支持HTML5,客户端创建iframe,基于心跳包与服务器端建立通信并执行业务操作。

在本发明所述的用于榨汁机系统的后台通信方法中,所述步骤S2包括:

S21、服务器端通过WebSockets类创建通信服务器;

S22、客户端通过HubConnection()函数建立对通信服务器的连接并通过Invoke()函数加入通信服务器的通信会话;

S23、通信服务器通过步骤S22中的通信会话主动向客户端发送命令;

S24、服务器端的WCF组件/WCF服务器将一项功能打包成一个HTTP请求,客户端收到服务器的命令后,发送请求给WCF组件/WCF服务器,WCF组件/WCF服务器返回业务数据或者执行一项功能。

在本发明所述的用于榨汁机系统的后台通信方法中,所述步骤S3包括:

S31、客户端创建http请求函数,并在http请求函数中创建HttpWebRequest对象执行HTTP请求:

S32、客户端创建Timer类,以一定的时间间隔向服务器端发出HTTP请求,通过返回值确定发出请求的客户端是否有需要执行的命令。

在本发明所述的用于榨汁机系统的后台通信方法中,所述步骤S1中所述的检测客户端是否支持HTML5包括:客户端组件创建webbrowser控件,采用Javascript中的checkhHtml5()函数判断客户端是否支持HTML5。

在本发明所述的用于榨汁机系统的后台通信方法中,所述步骤S2中所述的服务器端的命令由两个字段组成:第一个字段为业务内容,第二字段为对第 一个字段的操作方式。

本发明还公开了一种用于榨汁机系统的后台通信系统,包括客户端和服务器端,所述客户端包括:

HTML5检测模块,用于检测客户端是否支持HTML5,如果支持HTML5,则触发第一通信模块工作,如果不支持HTML5,则触发第二通信模块工作;

第一通信模块,用于与端创建WebSocket对象的服务器端建立通信会话,服务器端通过该通信会话发送命令给第一通信模块;第一通信模块收到服务器端的命令后,通过请求WCF服务执行业务操作;

第二通信模块;用于创建iframe,基于心跳包与服务器端建立通信并执行业务操作。

在本发明所述的用于榨汁机系统的后台通信系统中,所述服务器端包括通过WebSockets类创建的通信服务器和WCF组件/WCF服务器,WCF组件/WCF服务器用于将一项功能打包成一个HTTP请求;所述第一通信模块包括:

通信单元,用于通过HubConnection()函数建立对通信服务器的连接并通过Invoke()函数加入通信服务器的通信会话;通信服务器通过该通信会话主动向通信单元发送命令;

业务单元,在通信单元收到通信服务器的命令后,发送请求给WCF组件/WCF服务器,WCF组件/WCF服务器返回业务数据或者执行一项功能。

在本发明所述的用于榨汁机系统的后台通信系统中,所述第二通信模块包括:

请求单元:用于创建http请求函数,并在http请求函数中创建HttpWebRequest对象执行HTTP请求:

定时单元:用于创建Timer类,以一定的时间间隔向服务器端发出HTTP 请求,通过返回值确定发出请求的客户端是否有需要执行的命令。

在本发明所述的用于榨汁机系统的后台通信系统中,所述的检测客户端是否支持HTML5包括:HTML5检测模块组件创建webbrowser控件,采用Javascript中的checkhHtml5()函数判断客户端是否支持HTML5。

在本发明所述的用于榨汁机系统的后台通信系统中,所述的服务器端的命令由两个字段组成:第一个字段为业务内容,第二字段为对第一个字段的操作方式。

实施本发明的用于榨汁机系统的后台通信方法以及后台通信系统,具有以下有益效果:本发明通过检测客户端是否支持HTML5可以两种方式实现通信,一种是在客户端不支持HTML5的情况下通过心跳包的方式使连接状态不断开,实现持久的通信会话,另一种是在客户端支持HTML5的情况下使用WebSocket,实现与服务器端全双工通信,且结合WCF技术,使得业务操作不再给通信连接本身产生压力。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明用于榨汁机系统的后台通信方法的流程图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。

本发明适用于Windows、linux平台,本发明的用于榨汁机系统的后台通信方法包括:

S1、检测客户端是否支持HTML5,如果支持HTML5,则执行步骤S2,如果不支持HTML5,则执行步骤S3;

S2、在服务器端创建WebSocket对象,与客户端建立通信会话,并通过该通信会话发送命令给客户端;客户端收到服务器端的命令后,通过请求WCF服务执行业务操作;

S3、客户端创建iframe,基于心跳包与服务器端建立通信并执行业务操作。

优选的,所述步骤S2中所述的服务器端的命令由两个字段组成:第一个字段为业务内容,第二字段为对第一个字段的操作方式。因为当客户端数量很多,达到100W能上,服务器端与客户端的通信质量就有明显的下降,这个时候,服务器端与客户端的通信内容就是越少越有利于通信的速度、质量,在本方案中通过定义通信的命令格式形成一个标准,达到上面的要求,通信的命令以简短的“主+动”结构组成,例如"Ad Play",则表示要求客户端进行广告播放操作。

其中,所述步骤S1中所述的检测客户端是否支持HTML5包括:客户端组件创建webbrowser控件(因为客户端的窗体各异,利用该控件可以实现在窗体中导航网页),采用Javascript中的checkhHtml5()函数判断客户端是否支持HTML5,例如具体实施例中JS代码为:

其中,所述步骤S2包括:

S21、服务器端通过WebSockets类创建通信服务器;

例如,引用System.net.WebSockets,创建一个通信服务器:

WebSocket wsServer=new WebSocket(“127.0.0.1”,805);

S22、客户端通过HubConnection()函数建立对通信服务器的连接:

hubConnection=new HubConnection("http://127.0.0.1:805/signalr/hubs");

再通过Invoke()函数加入通信服务器的通信会话:

hubProxy.Invoke("joinGroup","Client01");

S23、通信服务器通过步骤S22中的通信会话主动向客户端发送命令;

例如,wsServer.Send("SendID","Client01","Ad Play");则客户端可得到:"Ad Play"信息。

S24、服务器端的WCF组件/WCF服务器将一项功能打包成一个HTTP请求,客户端收到服务器的命令后,发送请求给WCF组件/WCF服务器,WCF组件/WCF服务器返回业务数据或者执行一项功能。

WCF服务是编程的一种技术:WCF组件/WCF服务器将一项功能打包成一个HTTP请求,当收到客户端的请求时返回数据或执行一项功能。这样WCF服务 只对WCF组件/WCF服务器本身产生压力,不对通信组件/通信服务器产生压力。

例如,服务器创建特定事务WCF服务:

服务器实现AdPlay接口,通过ClientID返回客户端的广告播放的具体信息给客户端。客户端取得具体信息后执行广告播放业务。

其中,所述步骤S3包括:

S31、客户端创建http请求函数,并在http请求函数中创建HttpWebRequest对象执行HTTP请求:

S32、客户端创建Timer类,以一定的时间间隔向服务器端发出HTTP请求,通过返回值确定发出请求的客户端是否有需要执行的命令。

相应的,在上述方法的基础上,本发明还公开了一种用于榨汁机系统的后台通信系统,包括客户端和服务器端,所述客户端包括:

HTML5检测模块,用于检测客户端是否支持HTML5,如果支持HTML5,则触发第一通信模块工作,如果不支持HTML5,则触发第二通信模块工作;

所述的检测客户端是否支持HTML5包括:HTML5检测模块组件创建webbrowser控件,采用Javascript中的checkhHtml5()函数判断客户端是否支持HTML5。

第一通信模块,用于与端创建WebSocket对象的服务器端建立通信会话,服务器端通过该通信会话发送命令给第一通信模块;第一通信模块收到服务器 端的命令后,通过请求WCF服务执行业务操作;

第二通信模块;用于创建iframe,基于心跳包与服务器端建立通信并执行业务操作。

优选的,所述的服务器端的命令由两个字段组成:第一个字段为业务内容,第二字段为对第一个字段的操作方式。

其中,所述服务器端包括通过WebSockets类创建的通信服务器和WCF组件/WCF服务器,WCF组件/WCF服务器用于将一项功能打包成一个HTTP请求;

其中,所述第一通信模块包括:

通信单元,用于通过HubConnection()函数建立对通信服务器的连接并通过Invoke()函数加入通信服务器的通信会话;通信服务器通过该通信会话主动向通信单元发送命令;

业务单元,在通信单元收到通信服务器的命令后,发送请求给WCF组件/WCF服务器,WCF组件/WCF服务器返回业务数据或者执行一项功能。

其中,所述第二通信模块包括:

请求单元:用于创建http请求函数,并在http请求函数中创建HttpWebRequest对象执行HTTP请求:

定时单元:用于创建Timer类,以一定的时间间隔向服务器端发出HTTP请求,通过返回值确定发出请求的客户端是否有需要执行的命令。

综上所述,实施本发明的用于榨汁机系统的后台通信方法以及后台通信系统,具有以下有益效果:本发明通过检测客户端是否支持HTML5可以两种方式实现通信,一种是在客户端不支持HTML5的情况下通过心跳包的方式使连接状态不断开,实现持久的通信会话,另一种是在客户端支持HTML5的情况下使用WebSocket,实现与服务器端全双工通信,且结合WCF技术,使得业务操作不 再给通信连接本身产生压力。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1