前言
之前文章介绍了虚拟币交易平台开发的架构、虚拟币交易平台开发的钱包对接和通讯方式,本文主要对于开发交易系统非常核心的技术功能WebSocket展开介绍,以及网站开启HTTPS加密后和WebSocket的通讯方法。
为什么要使用WebSocket
对于开发一个交易系统而言,非常核心的内容就是高频次的数据实时更新和交互,如果使用AJAX轮询处理方式,客户端要不断的和服务端通讯请求数据来刷新页面,这样客户端会非常的耗资源而导致卡顿,WebSocket就是解决这种问题很好的一种方式。
WebSocket协议是基于TCP的网络协议,能够实现服务端与浏览器之间的双工通讯,服务端能够主动的发送数据给客户端(与Socket通讯一样)。
WebSocket实现原理和步骤
一、 实现原理
1. 客户端发起WebSocket连接请求,服务端给出响应(握手),发送
2. 客户端与WebSocket服务端建立一个数据连接通道
3. 客户端发送数据给WebSocket服务端
4. WebSocket服务端推送数据给客户端
二、 实现步骤
1. 创建一个WebSocket服务端(根据开发语言的不同,实现方式也不同)
2. 客户端实现方式
//与服务端创建连接
var ws = newWebSocket("ws://localhost:8888");
//建立连接成功后执行的回调函数
ws.onopen =function(event) {
console.log("Connection open.");
ws.send("Hi Message");
};
//接收到服务端发送数据进行处理(重点)
ws.onmessage =function(event) {
console.log( "Received Message: " +evt.data);
};
//连接关闭后执行的回掉函数
ws.onclose =function(event) {
console.log("Connection cloed.");
};
网站开启HTTPS后如何调用WebSocket
为了数据传输安全很多网站都会启用HTTPS,网站启用HTTPS后,无法再使用ws://方式去连接服务端,只能用wss://的方式去连接,这样要求我们要做如下更改:
1. 服务端更改:服务要改成支持与HTTPS同域名(域名证书)的HTTPS连接方式
2. 客户端把ws://的都要改成wss://并且不能使用IP地址去访问,只能通过域名去访问,如:wss://xxx.aaa.com
总结
交易平台系统都会有高频次的数据刷新需求,那么WebSocket就是很好的一种技术选型,首先根据需求建立一个WebSocket服务端,然后将数据刷新的的业务流程改成WebSocket去处理。