应用WebSocket
连接建立
应用WebSocket连接端点。路径参数
| 参数名 | 类型 | 必选 | 说明 |
|---|
| appId | string | 是 | 应用ID |
查询参数
| 参数名 | 类型 | 必选 | 说明 |
|---|
| token | string | 是 | 访问令牌 |
GET /v3/wss/app123?token=YOUR_ACCESS_TOKEN
身份验证
连接建立后,应用需要发送身份验证消息:
{
"jsonrpc": "2.0",
"method": "auth",
"params": {
"appId": "app123",
"token": "YOUR_ACCESS_TOKEN"
},
"id": "auth_1"
}
服务器将响应验证结果:
{
"jsonrpc": "2.0",
"result": {
"appId": "app123",
"status": "authenticated"
},
"id": "auth_1"
}
消息类型
应用事件
{
"jsonrpc": "2.0",
"method": "event",
"params": {
"type": "status_change",
"data": {
"status": "running",
"timestamp": 1641234567890
}
}
}
任务通知
{
"jsonrpc": "2.0",
"method": "task",
"params": {
"taskId": "task123",
"status": "completed",
"result": {
"success": true,
"data": {}
}
}
}
资源更新
{
"jsonrpc": "2.0",
"method": "resource",
"params": {
"type": "update",
"resource": "database",
"action": "backup_completed"
}
}
心跳机制
应用需要定期发送心跳包:
{
"jsonrpc": "2.0",
"method": "ping",
"id": "ping_1"
}
服务器将响应:
{
"jsonrpc": "2.0",
"result": "pong",
"id": "ping_1"
}
建议每30秒发送一次心跳包,超过90秒未收到心跳响应则重新连接。
错误处理
常见错误
- 应用认证失败
{
"jsonrpc": "2.0",
"error": {
"code": -32001,
"message": "Application authentication failed",
"data": {
"reason": "Invalid application ID"
}
},
"id": "auth_1"
}
- 资源访问失败
{
"jsonrpc": "2.0",
"error": {
"code": -32002,
"message": "Access denied",
"data": {
"resource": "database",
"reason": "Insufficient permissions"
}
},
"id": "resource_1"
}
重连策略
- 网络断开时立即尝试重连
- 失败后采用指数退避策略
- 最大重试间隔为5分钟
- 重连成功后重新进行应用身份验证
错误码说明
| 错误码 | 说明 |
|---|
| -32001 | 应用认证失败 |
| -32002 | 权限不足 |
| -32602 | 无效参数 |
| -32603 | 内部错误 |