WebSocket 在实时风险预警系统中的应用

灵犀安全 · 基于 RAG 异步分析结果实时推送架构设计

——基于 RAG 异步分析结果实时推送架构设计


一、背景

在"灵犀安全"反诈 App 中,系统需要实现一个核心能力:

当用户收到疑似诈骗信息后,App 能够在 AI 分析完成的第一时间主动提醒用户,而不是等待用户刷新页面。

例如:

用户收到:

【XX银行】
您的账户存在异常,请点击链接验证身份

系统流程:

通知监听
    |
    ↓
提交AI分析
    |
    ↓
RAG模型判断
    |
    ↓
返回风险等级
    |
    ↓
App立即报警

这里存在一个关键问题:

AI分析不是瞬间完成的。

一次完整的 RAG 流程可能包含:

耗时可能:

3秒 ~ 30秒

如果使用传统 HTTP 请求:

App请求

↓

服务器分析30秒

↓

返回结果

会导致:

因此,需要一种:

服务端主动向客户端推送消息的通信方式。

这就是 WebSocket。


二、为什么选择 WebSocket?

1. HTTP通信模型

传统HTTP:

客户端

    请求

      ↓

服务器

      ↓

响应

客户端

特点:

如果想知道任务是否完成:

只能:

每隔5秒查询一次

例如:

GET /task/result?id=123

问题:

高延迟

任务完成:

第1秒完成

客户端:

第5秒才知道

浪费:

4秒等待时间

2. WebSocket通信模型

WebSocket:

建立一次连接:

客户端

      ⇄

服务器

之后:

双方可以随时发送消息。

流程:

App

 |
 |
 | websocket连接
 |
 ↓

服务器


分析完成

 |
 |
 ↓

主动推送

App收到结果

三、灵犀安全中的 WebSocket 架构

整体设计:

                  手机端

              UniApp App

                   |

                   |

             WebSocket连接

                   |

                   |

             WebSocket服务

                   |

          -----------------

          |               |

      任务管理器      RAG服务

          |

          |

       AI分析完成

四、完整业务流程设计

第一步:提交分析任务

App监听到通知:

微信:

客服要求退款

调用:

POST

/api/v1/fraud-detect/analyzeContent

请求:

{
"type":"text",

"content":
"客服要求退款,需要验证码"

}

服务器返回:

{
"taskId":
"task_20260718_001",

"status":
"processing"
}

注意:

此时:

AI还没有完成。


第二步:建立WebSocket连接

客户端连接:

ws://server.com/ws/result

携带:

token

例如:

ws://server.com/ws/result?token=xxxx

服务器:

验证用户身份。


第三步:RAG异步分析

后台任务:

task_001

      |

      ↓

文本预处理

      |

      ↓

Embedding

      |

      ↓

向量检索

      |

      ↓

LLM分析

      |

      ↓

生成结果

第四步:WebSocket推送

分析完成:

服务器主动发送:

{
"type":
"RAG_RESULT",


"taskId":
"task_20260718_001",


"riskLevel":
"HIGH",


"reason":
"疑似冒充客服诈骗",

"suggestion":
"立即停止操作"

}

App立即响应。


五、客户端 WebSocket 实现

UniApp中:

const socket =
uni.connectSocket({

url:
"wss://server/ws/result"

})

连接成功:

socket.onOpen(()=>{

console.log(
"WebSocket连接成功"
)

})

收到消息:

socket.onMessage((res)=>{


const data =
JSON.parse(res.data)


if(
data.type==="RAG_RESULT"
){

handleRisk(data)

}


})

六、风险结果处理

收到:

{
"riskLevel":"HIGH"
}

进入:

function handleRisk(data){


switch(
data.riskLevel
){


case "HIGH":

showDanger()

break



case "MEDIUM":

showWarning()

break



case "LOW":

updateStatus()

break

}


}

七、HIGH风险处理设计

高风险:

例如:

公安诈骗

投资诈骗

冒充客服

处理:

收到HIGH

↓

播放警告音

↓

弹窗提醒

↓

通知守护人

流程:

RAG_RESULT

    |

    ↓

风险中心

    |

 -----------------

 |       |        |

声音   弹窗   守护通知

八、WebSocket心跳机制

移动网络环境复杂:

可能:

因此需要:

心跳。

客户端:

每30秒:

发送:

{
"type":"ping"
}

服务器:

返回:

{
"type":"pong"
}

作用:

确认连接仍然存在。


九、断线重连设计

移动端常见:

WebSocket断开

        |

        ↓

检测close事件

        |

        ↓

等待3秒

        |

        ↓

重新连接

示例:

socket.onClose(()=>{


setTimeout(()=>{


connectWebSocket()


},3000)


})

十、Token身份认证设计

因为风险数据属于:

敏感安全信息。

不能:

任何人连接WebSocket查看。

因此:

连接时:

携带:

JWT Token

例如:

wss://server/ws?

token=eyxxx

服务器:

验证:

用户身份

设备身份

权限

十一、消息协议设计

为了方便扩展:

定义统一消息格式。

基础结构:

{

"type":"",

"timestamp":"",

"data":{}

}

风险结果消息

{
"type":
"RAG_RESULT",

"data":{

"riskLevel":
"HIGH",

"content":
"发现诈骗风险"

}

}

守护人更新消息

{
"type":
"GUARDIAN_UPDATE",

"data":{

"name":
"爸爸",

"status":
"online"

}

}

系统通知

{
"type":
"SYSTEM_MESSAGE",

"data":{

"message":
"安全服务已启动"

}

}

十二、高并发场景设计

假设:

10万个用户同时使用。

如果每个人:

保持一个WebSocket连接:

服务器需要维护:

100000个TCP连接

因此需要:

1. 连接管理

维护:

userId

      ↓

WebSocket Session

例如:

10001

↓

session001

2. 消息异步化

不要:

WebSocket线程直接执行AI分析。

错误:

WebSocket

↓

LLM

↓

返回

会阻塞。

正确:

WebSocket

↓

任务队列

↓

AI服务

↓

消息队列

↓

WebSocket推送

十三、与消息队列结合

完整架构:

HTTP请求

    |

    ↓

任务队列

    |

    ↓

RAG Worker

    |

    ↓

结果队列

    |

    ↓

WebSocket服务

    |

    ↓

客户端

优势:


十四、项目中的实际应用

"灵犀安全"中:

WebSocket主要承担:

1. RAG结果实时同步

AI分析完成

↓

实时通知App

2. 守护列表同步

例如:

绑定新的守护人:

父亲加入守护列表

服务器:

推送:

{
"type":
"GUARDIAN_UPDATE"
}

App:

立即刷新。


3. 风险报警

HIGH风险

↓

WebSocket

↓

所有授权设备同步

十五、技术总结

在"灵犀安全"项目中:

WebSocket承担了:

AI分析结果与移动端之间实时通信桥梁。

核心技术:

HTTP任务提交

        +

异步RAG分析

        +

WebSocket实时推送

        +

心跳保活

        +

自动重连

        +

Token认证

最终形成:

系统事件发生

        ↓

AI智能分析

        ↓

实时风险推送

        ↓

用户主动防护

相比传统轮询方案:

方案 HTTP轮询 WebSocket
实时性
服务器压力
延迟 秒级 毫秒级
双向通信 不支持 支持
适合AI任务 一般 优秀

总结

WebSocket不仅是一种通信协议,更是实时智能应用的重要基础设施。

在 AI 安全领域:

模型负责:

思考

WebSocket负责:

及时告诉用户

二者结合,才能形成真正可用的智能安全系统。

← 返回首页