前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云函数websocket应用案例

云函数websocket应用案例

原创
作者头像
haimingli
修改2021-01-04 21:28:50
1.8K0
修改2021-01-04 21:28:50
举报

背景

  在web开发当中,有两种场景需要前端和后端频繁交互,一种是后端数据变动频繁,需要实时通知前端,一种是多客户端需要实时交互,为了解决这两个问题,许多web开发者通过使用ajax实现长轮询来实现和后端的交互,这种方案的缺点是数据实时性不是很高,不断建立tcp链接性能损耗不可忽视。对于这种实时性要求高,数据变动频繁的需求,其实使用websocket的方案更加合适,websocket是一种实现全双工的一种非常好的方案。serverless虽然是无状态的,但是可以结合api网关的能力,实现websocket。

方案设计

整体架构图如下:

image.png
image.png

实现步骤:

  • 登录云数据库 TencentDB 控制台,创建mysql,并初始化db,创建数据表,用于记录连接上来的客户
代码语言:txt
复制
//替换为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>";
            appendLog(item);
        };
        conn.onmessage = function (evt) {
			var item = document.createElement("div");
			item.innerText = "接收↓:";
			appendLog(item);
            var messages = evt.data.split('\n');
            for (var i = 0; i < messages.length; i++) {
                var item = document.createElement("div");
                item.innerText = messages[i];
                appendLog(item);
            }

        conn.send(msg.value);

登录云函数控制台,进入【函数服务】页面。创建Websocket注册函数,当用户连接api网关的时候,该注册函数就会把用户的连接信息记录到db,用于后续有消息推动登录云函数控制台,进入【函数服务】页面。创建Websocket传输函数。云函数收到消息后,会通过传输函数发送消息给其他客户端登录云函数控制台,进入【函数服务】页面。创建Websocket清理函数。当用户断开与api网关长连接的时候,该函数就清理db中的连接信息。配置API网关使用客户端接入,客户端可以是个网页,也可以是程序代码。 例如js客户端接入:

代码语言:txt
复制
java客户端接入: URI uri = URI.create("ws://xxx.apigw.tencentcs.com/release/websocket");
MyWebSocketClient myClient = new MyWebSocketClient(uri);
// 往websocket服务端发送数据
try {
    myClient.connectBlocking(); //阻塞等待访问
} catch (InterruptedException e) {
    e.printStackTrace();
}
if (myClient.isOpen()) {
    myClient.send("发的ssss".getBytes());
} else {
    System.out.println("close");
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 方案设计
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档