基于专享版API网关实现WebSocket服务的转发
应用场景
API网关支持WebSocket API,其创建过程和创建HTTP API一致。WebSocket是一种全双工通信协议,建立在单个TCP连接上,允许在客户端和服务器之间进行双向通信。WebSocket的设计旨在解决HTTP协议在实时性和交互性方面的不足。它广泛应用于实时聊天、在线游戏、金融行业的实时数据更新等场景。
约束与限制
- WebSocket API不支持APIG控制台页面中的调试功能。
- WebSocket API受API超时时间的限制,如果当前WebSocket连接空闲时间超过了配置的超时时间,并且没有ping/pong保活,则连接会被自动断开。
前提条件
准备一个已做ping/pong保活的WebSocket服务后端。
操作步骤
- 登录API网关控制台页面。
- 根据实际业务在左侧导航栏上方选择实例。
- 在左侧导航栏选择“API管理 > API列表”。
- 单击“创建API > 创建API”,配置前端信息。
表1 前端配置 参数
配置说明
API名称
填写API名称,建议您按照一定的命名规则填写,方便您快速识别和查找。例如“API01”。
所属分组
默认“DEFAULT”。
URL
请求方法:接口调用方式,此处选择“GET”。
请求协议:选择API请求协议,默认“HTTPS”,对应wss协议。
子域名:API分组创建后,系统为分组自动分配一个内部测试用的调试域名,此调试域名每天最多可以访问1000次。
路径:接口请求路径。此处填写“/hello”。
网关响应
API网关未能成功处理API请求,从而产生的错误响应。此处默认“default”。
安全认证
选择API认证方式,此处选择“无认证”。(无认证模式,安全级别低,所有用户均可访问,不推荐在实际业务中使用)
- 单击“下一步”,配置后端信息。
表2 后端配置 参数
配置说明
后端服务类型
此处选择“HTTP&HTTPS”。
负载通道
选择“不使用”负载通道访问后端服务。
URL
- 请求方法:接口调用方式,此处选择“GET”。
- 请求协议:选择协议类型,此处选择“HTTP”。
- 后端服务地址:此处填写WebSocket后端服务地址及端口。
- 路径:后端服务的路径。此处填写“/”。
后端超时(ms)
调整后端超时时间,使其长于ping/pong心跳时间。例如,ping/pong心跳时间为20s,那么超时时间可以设置区间为(20000ms,60000ms]。
- 单击“完成”。
- API创建完成后,在“API运行”页签中,单击“发布最新版本”,发布API。
- 使用接口测试工具调用API。
本实践通过IP调用DEFAULT分组下的API,输入“wss://IP地址/hello”发送请求即可。其中,IP地址为APIG控制台“实例信息”中的弹性IP地址。