跳转到内容

WebSocket

messaging-websocket 是一个由答案文件驱动、从 build-answer.json 生成的消息提供商。当客户端与 Greentic 保持实时 WebSocket 会话并交换 JSON frame,而不是使用具名聊天平台时,它很有用。

当前支持:

  • 无认证、bearer-token 认证或 query-token 认证的连接校验
  • 将包含 JSON 对象的入站文本 frame 映射为规范化事件
  • 从消息 payload 构建出站文本 frame
  • opencloseerror 规范化生命周期事件

当前提供商实现暂不处理二进制 frame。

  1. 添加提供商 pack

    使用 gtc wizard 选择 messaging-websocket,或从消息提供商目录将该 pack 添加到 bundle。

  2. 配置连接策略

    使用已安装 pack 生成的 setup answers。典型配置包括 tenant/team 元数据和可选认证。

  3. 运行 setup

    Terminal window
    gtc setup ./my-bundle
  4. 启动 runtime

    Terminal window
    gtc start ./my-bundle

入站 frame 必须是包含 JSON 对象的文本 frame。提供商会将其映射为如下事件:

{
"provider": "messaging-websocket",
"direction": "inbound",
"kind": "websocket.frame",
"session_id": "session-1",
"payload": {
"message": "hello"
},
"metadata": {
"tenant_id": "demo",
"team_id": "default"
}
}

生命周期事件会被规范化为 websocket.openwebsocket.closewebsocket.errorkind 值。

出站消息需要 session_id 和对象 payload。它们会转换为文本 frame:

{
"session_id": "session-1",
"opcode": "text",
"data": "{\"message\":\"hello\"}"
}
方向协议和端口用途
入站WSS 443 到 Greentic生产环境中的浏览器或服务 WebSocket 客户端
入站,本地开发本地 runtime/tester 端口上的 WSTLS/隧道终止前的本地测试
出站当 host/runtime 集成使用时,到已配置 endpoint 的 WS 或 WSS提供商构建的出站 frame

使用本地 tester:

Terminal window
./scripts/test_ws.sh

tester 页面为入站 frame 映射、出站 frame 生成和生命周期事件规范化提供独立按钮,并显示清晰的通过/失败状态。