模块 版本
快速入门 1.6.8版本
基础模块 1.6.8版本
数据操作模块 1.6.8版本
客户端获取模块 1.6.8版本
上传服务端模块 1.6.8版本
时间模块 1.6.8版本
加密模块 1.6.8版本
数据流模块 1.6.8版本
远程请求模块 1.6.8版本
JSON模块 1.6.8版本
XML模块 1.6.8版本
FSO模块 1.6.8版本
自定义模块 1.6.8版本
MVC模块 1.6.8版本
二维码模块 1.6.8版本
邮件模块 1.6.8版本
Excel模块 1.7.0版本

WebSocket解决方案

WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在WebSocketAPI中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。现在,很多网站为了实现推送技术,所用的技术都是Ajax轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。HTML5定义的WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。以下提供基于ZeroASP实现WebSocket服务。你可以免费将该模块使用于任何个人项目。但是不能去除模块信息。官方QQ群:199951855


安装WebSocket服务

  • 1.下载并解压WebSocket_Server_1.0.0.rar到ZeroASP根目录;点击下载
  • 2.打开WebSocket文件夹,运行【WebSocket.exe】;

配置WebSocket服务

  • 1.【WS服务端口】默认3000,该端口为客户端连接端口;
  • 2.【WS接收端口】默认3001,该端口为第三方系统接收端口;
  • 3.【客户端消息推送地址】第三方系统获取客户端消息;
  • 4.【在线客户端获取授权地址】第三方系统获取当前所有客户端连接数;
  • 5.【单发/群发授权地址】第三方系统发送消息给当前所有客户端;
  • 6.【Token】交互数据安全Key,推荐16位或者32位含字母和数字的随机值;
  • 7.【在线客户端设置】提供是否允许客户端使用相关功能,勾选为允许;

启动WebSocket服务

  • 1.WebSocket点击【启动服务】;
  • 2.实时消息窗口显示【WebSocket服务启动成功】,则正常运行;

运行WebSocket主界面

注意:WebSocket服务端填写的地址均和第三方服务端一致,否则无法正常验证


H5客户端

1.基础客户端(HTML);

			 
			<script type="text/javascript">
			//WebSocketClient For ZeroASP
			var ws = {};
			function connect(){
				ws = new WebSocket('ws://127.0.0.1:3000/');
				ws.onopen = function(e){
					console.log("Websocket连接已建立");
					var data = {
						'DT':'text',
						'Types':'1',
						'Id':'0',
						'ToId':'0',
						'Msg':'0'
					}
					ws.send(JSON.stringify(data));
				};
				ws.onmessage = function(e){
					console.log(e.data);
				};
				ws.onclose = function(){
					setTimeout(function(){
						connect();
					},3000);
				}
			};
			connect();
			</script>
			 

2.客户端支持语法;

			 
			标识消息:用于获取自身的通信标识;
			特性:支持服务端关闭;
			语法:ws.send('{"DT":"text","Types":"1","Id":"0","ToId":"0","Msg":"0"}');

			定向消息:用于发送数据给指定的客户端;
			特性:支持服务端关闭;
			语法:ws.send('{"DT":"text","Types":"2","Id":"1","ToId":"2,3,4,5","Msg":"定向消息测试"}');

			群发消息:用于发送数据给所有的客户端;
			特性:支持服务端关闭;
			语法:ws.send('{"DT":"text","Types":"3","Id":"1","ToId":"All","Msg":"群发消息测试"}');
			 

第三方服务端

1.客户端消息推送给第三方服务端;

			 
			<!--#include file="./ZeroASP/ZeroASP.asp"-->
			<%
			Dim Req,Value,Token,Sign
			For Each Value In Request.Form
				Req = Req & Value & "=" & Zasp.Req.Post(Value) & "&" '获取POST
			Next
			Req = Left(Req,Len(Req) - 1)
			'Token
			Token = "e10adc3949ba59abbe56e057f20f883e"
			'签名
			Sign = Zasp.Encrypt.SHA1("data=" & Zasp.Req.Post("data") & "&token=" & Token, "Hex")
			'验证
			If Sign = Zasp.Ec(Zasp.Req.Post("sign")) Then
				'写入日志
				'Call Zasp.Stream.WriteFile("./push.txt",Req,"UTF-8")
				Zasp.Echo("success")
			Else
				'写入日志
				'Call Zasp.Stream.WriteFile("./push.txt",Req,"UTF-8")
				Zasp.Echo("fail")
			End If
			%>
			 

2.在线客户端获取;

			 
			<!--#include file="./ZeroASP/ZeroASP.asp"-->
			<%
			Dim AuthURL,Token,Sign,Parameter,XMLHTTP
			'授权地址
			AuthURL = "https://www.zeroasp.com/online.asp"
			'Token
			Token = "e10adc3949ba59abbe56e057f20f883e"
			'签名
			Sign = Zasp.Encrypt.SHA1("interface=online&authurl=" & AuthURL & "&token=" & Token,"Hex")
			'请求参数
			Parameter = "interface=online&sign=" & Sign
			XMLHTTP = Zasp.XMLHTTP.PostHTTP("http://127.0.0.1:3001/",Parameter,"UTF-8")
			Zasp.Echo(XMLHTTP)
			%>
			 

3.发送定向消息给客户端;

			 
			<!--#include file="./ZeroASP/ZeroASP.asp"-->
			<%
			Dim AuthURL,Token,ClientId,Message,Sign,Parameter,XMLHTTP
			'授权地址
			AuthURL = "https://www.zeroasp.com/send.asp"
			'Key
			Token = "e10adc3949ba59abbe56e057f20f883e"
			'定向客户端
			ClientId = "1,3,4,5"
			'定向内容
			Message = "API定向内容推送测试"
			Sign = Zasp.Encrypt.SHA1("interface=one&authurl=" & AuthURL & "&clientid=" & ClientId & "&message=" & Message & "&token=" & Token,"Hex")
			'请求参数
			Parameter = "interface=one&clientid=" & ClientId & "&message=" & Message & "&sign=" & Sign
			XMLHTTP = Zasp.XMLHTTP.PostHTTP("http://127.0.0.1:3001/",Parameter,"UTF-8")
			Zasp.Echo(XMLHTTP)
			%>
			 

4.发送群发消息给客户端;

			 
			<!--#include file="./ZeroASP/ZeroASP.asp"-->
			<%
			Dim AuthURL,Token,ClientId,Message,Sign,Parameter,XMLHTTP
			'授权地址
			AuthURL = "https://www.zeroasp.com/send.asp"
			'Key
			Token = "e10adc3949ba59abbe56e057f20f883e"
			'群发客户端
			ClientId = "ALL"
			'群发内容
			Message = "API群发内容推送测试"
			Sign = Zasp.Encrypt.SHA1("interface=all&authurl=" & AuthURL & "&clientid=" & ClientId & "&message=" & Message & "&token=" & Token,"Hex")
			'请求参数
			Parameter = "interface=all&clientid=" & ClientId & "&message=" & Message & "&sign=" & Sign
			XMLHTTP = Zasp.XMLHTTP.PostHTTP("http://127.0.0.1:3001/",Parameter,"UTF-8")
			Zasp.Echo(XMLHTTP)
			%>
			 

WebSocket服务端支持WS和WSS协议,对应HTTP和HTTPS协议站点

使用WSS协议,需要搭建Nginx转发服务


了解更多 »