背景
在web开发当中,有两种场景需要前端和后端频繁交互,一种是后端数据变动频繁,需要实时通知前端,一种是多客户端需要实时交互,为了解决这两个问题,许多web开发者通过使用ajax实现长轮询来实现和后端的交互,这种方案的缺点是数据实时性不是很高,不断建立tcp链接性能损耗不可忽视。对于这种实时性要求高,数据变动频繁的需求,其实使用websocket的方案更加合适,websocket是一种实现全双工的一种非常好的方案。serverless虽然是无状态的,但是可以结合api网关的能力,实现websocket。
方案设计
整体架构图如下:
实现步骤:
- 登录云数据库 TencentDB 控制台,创建mysql,并初始化db,创建数据表,用于记录连接上来的客户
//替换为websocket连接地址
let conn = new WebSocket("ws://service-xxx-xxx.sh.apigw.tencentcs.com/release/websocket");
conn.onclose = function (evt) {
var item = document.createElement("div");
item.innerHTML = "<b>Connection closed.</b>";