详情页标题前

腾讯云云函数(SCF)WebSocket 协议支持-云淘科技

详情页1

Web 函数目前已经支持通过原生 WebSocket 协议在客户端和函数运行的服务端间建立连接。

工作原理

服务启动

可以通过在配置支持 WebSocket 协议的 Web 函数的运行环境中,使用启动文件启动 WebSocket 服务器,并在 指定端口(9000) 上进行监听,等待客户端连接。同时,API 网关触发器需要设定为前端协议为 “WS 或 WSS” 支持,后端为当前指定支持 WebSocket 的 Web 函数。 通过 API 网关提供的 ws 路径,可供客户端连接使用。

建立 WebSocket 连接

WebSocket 客户端通过使用 API 网关触发器提供的 WS 连接,发起 WebSocket 连接。 API 网关及云函数平台将透传连接至运行环境中的服务进程上。建立连接的协商及通讯过程,均由服务端代码处理。连接建立后,客户端及服务端按 WebSocket 协议进行正常通讯。

WebSocket 连接生命周期

在 Web 函数的 WebSocket 支持下, WebSocket 一次连接的生命周期,等同于一次函数调用请求。WS 连接建立过程等同于请求发起阶段,WS 连接断开等同于请求结束。同时,函数实例与连接一一对应,即同一实例在某一时刻仅处理一个 WS 连接。在有更多客户端的连接请求发起时,将启动对应数量的实例进行处理。当 WS 连接请求时,函数实例启动,并接受连接建立的请求。当 WS 连接建立后,实例持续运行,根据实际业务情况来接受处理客户端的上行数据,或服务端主动推送下行数据。当 WS 连接中断后,实例停止运行。

连接断开

在如下情况中,WS 连接会中断,且由于请求生命周期与连接生命周期相同,也会使得当次请求运行周期结束:

断开情况 函数表现 函数状态码
客户端或服务端发起连接结束、关闭连接操作,结束状态码为1000、1010(客户端发送)、1011(服务端发送) 函数正常执行结束,运行状态为成功 200
客户端或服务端发起连接结束、关闭连接操作,结束状态码非1000、1010、1011 函数异常结束,运行状态为失败 439(服务端关闭)456(客户端关闭)
在 WS 连接上无消息上行或下行发送,达到配置的空闲超时时间的情况下,连接被函数平台断开 函数异常结束,运行状态为失败 455
在连接建立后持续使用,函数运行时间达到最大运行时长,连接被函数平台断开 函数异常结束,运行状态失败 433

WebSocket 协议的结束码详情可见 WebSocket Status Codes。更详细的函数状态码可见 云函数状态码列表。

使用限制

使用 WebSocket 时有如下限制:空闲超时时间设置:10~7200 秒,函数配置的执行超时时间需要大于等于空闲超时时间。单次请求或返回包最大体积:256KB,可 联系我们 提升配额限制。单连接请求大小限制:128KB/s,可 联系我们 提升配额限制。单连接请求 QPS 限制:10,可 联系我们 提升配额限制。

操作步骤

创建函数

1. 登录 Serverless 控制台,单击左侧导航栏的函数服务。2. 在主界面上方选择期望创建函数的地域和命名空间,并单击新建,进入函数创建流程。3. 选择使用从头开始来新建函数,函数类型选择 Web 函数。4.高级配置中查看协议支持选项。通过勾选 WebSocket 支持,配置好 WebSocket 空闲超时时间,来完成 WebSocket协议支持。如下图所示: n

腾讯云云函数(SCF)WebSocket 协议支持-云淘科技

5. 勾选 WebSocket 支持后,在触发器配置中,API 网关的协议支持同样将自动切换为 WS&WSS 支持,创建的 API 网关所提供的链接地址,也将是 Websocket 地址。如下图所示: n

腾讯云云函数(SCF)WebSocket 协议支持-云淘科技

说明在完成创建后,WebSocket 的协议支持不可取消,但可以根据需求修改空闲超时时间配置。

示例代码

目前可以通过如下的 Demo 代码来创建函数,体验 WebSocket 效果:Python 示例:使用 websockets 库 实现 WebSocket 服务端。Nodejs 示例:使用 ws 库 实现 WebSocket 服务端。
官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/149347.html

(0)
上一篇 2023年12月9日 下午1:17
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云云函数(SCF)部署 Vue + Express + PostgreSQL 全栈网站-云淘科技

    操作场景 该模板可以快速部署一个基于 Vue + Express + PostgreSQL 的全栈 Serverless 应用。主要包含以下组件:Serverless RESTful API:通过云函数和 API 网关构建的 Express 框架实现 RESTful API。Serverless 静态网站:前端通过托管 Vue.js 静态页面到 COS 对象…

    腾讯云 2023年12月9日
  • 腾讯云云点播自定义域名

    操作场景 开通云点播后,系统将为您分配一个默认域名xxx.vod2.myqcloud.com,您在云点播中的所有资源将默认使用该域名。您也可以登录 云点播控制台 自定义添加并解析域名。 前提条件 已成功申请云点播服务,详细请参见 购买指引。待添加的域名已成功备案,详细请参见 备案流程。 添加域名 1. 登录 云点播控制台,单击左侧导航栏应用管理,进入应用列表…

    2023年12月9日
  • 腾讯云对象存储删除对象

    简介 本文档提供关于对象的删除操作相关的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 DELETE Object 删除单个对象 在存储桶中删除指定对象 DELETE Multiple Objects 删除多个对象 在存储桶中批量删除对象 删除单个对象 功能说明 DELETE Object 接口请求可以在 COS 的存储桶中将一个对象(Ob…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云TDSQL-C MySQL版开启或关闭外网地址

    除了通过内网地址连接集群,在开启外网后,您也可以在外网通过系统分配的域名和端口访问 TDSQL-C MySQL 版,生效时间大概需要5分钟,TDSQL-C MySQL 版外网访问仅用于开发或辅助管理数据库,业务方面的访问请使用内网访问。本文为您介绍如何通过控制台开启或关闭集群下的读写外网地址和只读外网地址。 操作场景 TDSQL-C MySQL 版集群下包含…

    2023年12月9日
  • 数据传输DTS中公司有阿里云vpn 我本地电脑 如何访问到DMS内网数据库的安全代理地址?-云小二-阿里云

    数据传输DTS中公司有阿里云vpn 我本地电脑 如何访问到DMS内网数据库的安全代理地址? 以下为热心网友提供的参考意见 首先需要确保你已经成功安装并配置了阿里云VPN客户端。 登录阿里云控制台,在VPC服务中找到你的虚拟私有云(VPC)实例。 在VPC实例详情页面中,查看“子网”部分,记录下你需要访问的子网ID和CIDR范围。 在本地电脑上打开阿里云VPN…

    阿里云 2023年12月14日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。