WebSocket八问八答,一文解答云函数WebSocket使用疑惑

云函数Web Function支持原生WebSocket协议后,受到了众多开发者的关注,与此同时,我们也收到了许多疑问和反馈。本篇文章将大家关注的点总结了八大问题并进行了一一解答,希望可以帮助您更好理解和使用云函数的WebSocket功能。

01.

事件函数、Web函数、WebSocket之间的关系?

目前函数支持了不同类型的函数,写法和支持功能上都有一定区别,几种函数类型关系如图:

640.webp.jpg

由于接收的触发源类型不同,云函数支持了Web函数与事件函数为两大类型,Web函数下又支持不同的Web协议,可以根据实际业务选择对应的函数类型。

640.webp (1).jpg

02.

云函数上使用WebSocket,代码究竟应该怎么写?

对于传统开发者而言,遇到的最大问题是不知道如何在云端写函数,Web函数提供了最原生的开发方式,以WebSocket服务器代码开发为例,除了需要指定监听端口外,本地业务代码和云端业务代码并无其它区别,直接部署上传即可,示例如下:

640.webp (2).jpg

640.webp (4).jpg

scf_bootstrap示例:

#!/bin/bash

/var/lang/node12/bin/node app.js

03.

已部署为http&https协议的Web函数,能否升级为WebSocket协议?

目前还不支持函数协议的直接转换,建议采用创建新函数的方式体验WebSocket的功能。

04.

在WebSocket场景下,函数的超时时间是如何定义的?

WebSocket的场景下,超时时间分为三部分,介绍如下:

·初始化超时时间:函数初始化阶段包括准备函数代码、准备镜像、准备层等相关资源以及执行函数主流程代码,可选值范围为3-300秒,镜像部署函数默认90秒,其他函数默认60秒。

·执行超时时间:函数的最长运行时间,对WS协议而言,此处指从发起连接请求到连接断开,完成一次调用的时间,如果您的业务场景对WS有长时间保持连接的要求,建议调大该时间。

·WS空闲超时时间:指WS的空闲等待时间,可选范围1-600秒。

05.

对于WebSocket函数,应该如何查看运行日志?常见状态码与错误原因?

日志查看的方式与事件函数相同,您可以通过console.log()、print()等通用方式完成日志打印,并在控制台查看到运行日志。

1636511091(1).png

状态码说明:更详细的函数状态码可见云函数状态码列表。

云函数状态码表:https://cloud.tencent.com/document/product/583/42611

06.

WebSocket的常见使用场景如聊天室,需要实现连接信息的注册存储,在云函数架构下该如何实现?

云函数为单实例单并发,对于聊天室场景,不同用户的请求访问后台服务时,云函数会根据实际请求数量进行扩缩容调整后台实例数,不同实例之间,需要新增消息队列/Redis作为中间件层,实现多Server之间的通讯,从而实现消息的精准广播:

1.建立连接模块,函数通过WS请求进行连接信息的筛选,并记录到消息队列/Redis中完成注册:

640.webp (5).jpg

2.消息传输模块,云函数将发送请求的请求ID,发送给中间件,根据ID决定消息的广播或指定用户发送,网关侧透传请求,不做特殊业务逻辑处理;

640.webp (6).jpg

3.消息清理模块,用户断开连接,函数同步清理中间件层的注册消息

640.webp.jpg

07.

Http协议和WS能否混用?期望用户通过Http访问,但使用WS来转发

对于Web函数,这种场景是可以实现的,但架构上无法通过单一函数管理,而是需要使用两个函数,并在中间通过一个消息队列/Redis作为中间件来连接,参考架构如图:

640.webp (1).jpg

08.

WebSocket往往需要一直保持心跳,这里如何计费?

WebSocket的计费项与事件函数相同,各个计费项说明如下:

·Web函数调用次数:按照每次WS建立连接收费,连接后续的心跳次数不做计费;(Web函数调用费用即将进行优化,敬请期待)

·函数资源量GBs:按照连接从WS建立到断开的总时间统计函数运行时长,设置合理的超时时间可以有效节省费用;

·外网出流量:函数对外访问的流量费用,与现有函数统计方式相同。

我们是设计师、工程师、梦想者,是您扬帆出海的私人顾问专家


相关内容:
[亚马逊开店深圳办事处地址在哪里]
[亚马逊开店深圳办事处地址在哪里]
亚马逊开店深圳办事处地址揭秘:一站式开店服务,轻松拥抱财富!各位亲爱的创业者们,你们好!今天要给大家带来一个好消息——亚马逊开店深圳办事处地址终于揭开了神秘面纱!在这里,
亚马逊开店卖翡翠怎么样?
亚马逊开店卖翡翠怎么样?
亚马逊开店卖翡翠:珠宝行业的巨大商机等你来挖掘!在炎热的夏季,一杯清凉的饮料、一本好书和一个精美的翡翠饰品,想必是很多人的首选。翡翠作为中国传统文化中的瑰宝之一,以其晶莹

TG客服:@SSjiejie — 官方频道:@SSwangluo

三生网络 © 2009-2023 超15年出海经验,跨境项目专家