文档首页/ API网关 APIG/ 最佳实践/ 基于专享版API网关实现WebSocket服务的转发
更新时间:2024-09-20 GMT+08:00

基于专享版API网关实现WebSocket服务的转发

应用场景

API网关支持WebSocket API,其创建过程和创建HTTP API一致。WebSocket是一种全双工通信协议,建立在单个TCP连接上,允许在客户端和服务器之间进行双向通信。WebSocket的设计旨在解决HTTP协议在实时性和交互性方面的不足。它广泛应用于实时聊天、在线游戏、金融行业的实时数据更新等场景。

约束与限制

  • WebSocket API不支持APIG控制台页面中的调试功能。
  • WebSocket API受API超时时间的限制,如果当前WebSocket连接空闲时间超过了配置的超时时间,并且没有ping/pong保活,则连接会被自动断开。

前提条件

准备一个已做ping/pong保活的WebSocket服务后端。

操作步骤

  1. 登录API网关控制台页面。
  2. 根据实际业务在左侧导航栏上方选择实例。
  3. 在左侧导航栏选择“API管理 > API列表”。
  4. 单击“创建API > 创建API”,配置前端信息。

    表1 前端配置

    参数

    配置说明

    API名称

    填写API名称,建议您按照一定的命名规则填写,方便您快速识别和查找。例如“API01”。

    所属分组

    默认“DEFAULT”。

    URL

    请求方法:接口调用方式,此处选择“GET”。

    请求协议:选择API请求协议,默认“HTTPS”,对应wss协议。

    子域名:API分组创建后,系统为分组自动分配一个内部测试用的调试域名,此调试域名每天最多可以访问1000次。

    路径:接口请求路径。此处填写“/hello”。

    网关响应

    API网关未能成功处理API请求,从而产生的错误响应。此处默认“default”。

    安全认证

    选择API认证方式,此处选择“无认证”。(无认证模式,安全级别低,所有用户均可访问,不推荐在实际业务中使用)

  5. 单击“下一步”,配置后端信息。

    表2 后端配置

    参数

    配置说明

    后端服务类型

    此处选择“HTTP&HTTPS”。

    负载通道

    选择“不使用”负载通道访问后端服务。

    URL

    • 请求方法:接口调用方式,此处选择“GET”。
    • 请求协议:选择协议类型,此处选择“HTTP”。
    • 后端服务地址:此处填写WebSocket后端服务地址及端口。
    • 路径:后端服务的路径。此处填写“/”。

    后端超时(ms)

    调整后端超时时间,使其长于ping/pong心跳时间。例如,ping/pong心跳时间为20s,那么超时时间可以设置区间为(20000ms,60000ms]。

  6. 单击“完成”。
  7. API创建完成后,在“API运行”页签中,单击“发布最新版本”,发布API。
  8. 使用接口测试工具调用API。

    本实践通过IP调用DEFAULT分组下的API,输入“wss://IP地址/hello”发送请求即可。其中,IP地址为APIG控制台“实例信息”中的弹性IP地址。