环境准备
在开始部署云函数前,您需要完成以下操作:
1. 登录 云数据库 TencentDB 控制台。
2. 在广州地域下,新建并购买一个数据库。
新购买的数据库请注意开启外网地址,本文将使用外网地址。如下图所示:
如果您未创建数据库实例,建议购买按量计费的最小实例,用于所有终端广播消息时使用,存储 Websocket 的连接 ID 及相关信息。
如果您已购买创建数据库实例,可以直接新建数据库或表,供云函数使用。
说明
创建云函数
1. 登录 Serverless 控制台,进入函数服务页面。
2. 选择广州地域,default 命名空间。
创建注册函数
1. 单击新建,进入新建函数页面。
2. 设置以下参数信息,如下图所示:
创建方式:选择模板创建。
模糊搜索:输入 Websocket 注册函数,并进行搜索,本文以运行环境 Python 2.7 为例。
单击模板中的查看详情,即可在弹出的模板详情窗口中查看相关信息,支持下载操作。
3. 单击下一步并保持默认配置,单击完成即可创建注册函数。
创建传输函数
1. 单击新建,进入新建函数页面。
2. 设置以下参数信息,如下图所示:
创建方式:选择模板创建。
模糊搜索:输入 Websocket 传输函数,并进行搜索,本文以运行环境 Python 2.7 为例。
单击模板中的查看详情,即可在弹出的模板详情窗口中查看相关信息,支持下载操作。
3. 单击下一步并保持默认配置,单击完成即可创建传输函数。
创建清理函数
1. 单击新建,进入新建函数页面。
2. 设置以下参数信息,如下图所示:
创建方式:选择模板创建。
模糊搜索:输入 Websocket 清理函数,并进行搜索,本文以运行环境 Python 2.7 为例。
单击模板中的查看详情,即可在弹出的模板详情窗口中查看相关信息,支持下载操作。
3. 单击下一步并保持默认配置,单击完成即可创建清理函数。
配置 API 网关
创建 API
1. 登录 API 网关控制台,单击左侧导航栏服务。
2. 在服务页面,选择页面上方的广州地域,并单击新建。
3. 在弹出的新建服务页面填写如下参数信息,单击下一步,按照提示完成相应配置,如下图所示:
4. 主要参数信息说明如下:
服务名:最长50个字符,支持
a - z,A - Z,0 - 9,_
,此处以 Websocket 为例。实例:选择共享型。
备注:此处以 websocket 为例。
5. 单击下一步,填写如下参数信息。如下图所示:
主要参数信息说明如下:前端类型:选择HTTP。
访问方式:选择公网。
6. 单击提交完成创建。
7. 单击已创建的服务 ID,进入服务详情页。选择管理 API > 新建。如下图所示:
8. 在前端配置页面填写以下参数信息,其余设置保持默认,填写完成后单击下一步,按照提示完成相应配置,如下图所示:
主要参数信息说明如下:API名称:命名为 websocket。
前端类型:选择WS。
路径:填写
/websocket
。鉴权类型:选择免认证。
9. 在后端配置页面填写以下参数信息,单击下一步,按照提示完成相应配置,如下图所示:
主要参数信息说明如下:后端类型:选择云函数 SCF。
传输函数:选择新创建的传输函数,即
WebsocketTransmissionDemo-xxx
。注册函数:勾选,并选择新创建的注册函数,即
WebsocketRegisterDemo-xxx
。清理函数:勾选,并选择新创建的清理函数,即
WebsocketDeleteDemo-xxx
。后端超时:设置为600秒。Client 端在建立 Websocket 连接后,如果一直没有消息发送,将会在超时时间到达后,由 API 网关断开连接。
10. 在响应结果页面填写以下参数信息,如下图所示:
返回类型:选择 HTML。
其余保持默认设置。
11. 单击完成即可创建 API 网关。
发布服务
在弹窗中单击发布服务即可将服务发布到正式环境中。
获取 Websocket 反向推送地址
选择管理 API 页签,单击 API 的 ID/名称,查看 Websocket 的反向推送地址,及其它配置信息。如下图所示:
注意
Websocket 的反向推送地址会在云函数主动向 Client 端发送消息、或者主动断开与 Client 端的连接时使用。
获取 Websocket 连接地址
选择发布管理页签,查看 API 服务地址。如下图所示:
注意
Websocket 的 API 地址需要带上 API 的路径
/websocket
。根据服务地址,可知 Websocket 连接地址为:
ws://service-phe5h6qu-xxxxxxxxx.gz.apigw.tencentcs.com/release/websocket
。修改函数初始化信息
1. 如若未创建数据库,可参见 建立数据库和表,创建以下数据库、数据表和列:
数据库:命名为 “SCF_Demo”。
数据表:命名为 “ConnectionID_List”。
列:命名为 “ConnectionID、Date”。
2. 打开数据管理,确认已在数据库实例中创建数据库。如下图所示:
修改注册函数
1. 登录 Serverless 控制台。
2. 进入
WebsocketRegisterDemo-xxx
的函数代码页签,按照以下提示修改信息,并单击保存。如下图所示:
sendbackHost:API 网关反向推送链接,请参见步骤 获取 Websocket 反向推送地址。
Host:数据库外网地址。
User:数据库账号。
Password:数据库账号密码。
Port:数据库外网端口。
DB 及 Table:保持默认。