You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义UI开发时,如何连接Weavy的Websockets?

自定义UI集成Weavy Websockets的实现步骤

Weavy的Websockets基于标准WebSocket协议,即便用官方文档未提及的技术栈,也可以通过以下核心步骤完成集成:

1. 获取认证令牌

Weavy的WebSocket连接需要身份验证,首先得通过Weavy的REST API获取有效的access_token:

  • 发送POST请求到Weavy实例的/api/users/tokens端点
  • 请求体中携带用户身份凭证(比如关联的用户ID、JWT令牌等,具体格式参考Weavy用户认证规则)
  • 从响应中提取access_token字段,后续连接WebSocket时需要用到

2. 构造WebSocket连接URL

Weavy的WebSocket端点默认是wss://<你的Weavy实例域名>/hub(自托管环境可能是ws://开头),需要在URL的查询参数中带上认证令牌:

wss://your-weavy-domain/hub?access_token=<获取到的access_token>

3. 建立连接并处理消息

使用任意支持WebSocket客户端的技术栈创建连接,监听并解析Weavy推送的JSON格式消息:

  • Weavy的WebSocket消息包含type(消息类型)、data(消息内容)等核心字段
  • 常见消息类型包括chat.message(新聊天消息)、notification(系统通知)、presence.change(用户在线状态变更)等

示例:Python中使用websockets库连接

import asyncio
import websockets
import json

async def weavy_websocket_client():
    # 替换为实际获取的access_token
    access_token = "your-valid-access-token"
    ws_url = f"wss://your-weavy-instance/hub?access_token={access_token}"

    try:
        async with websockets.connect(ws_url) as websocket:
            print("成功连接Weavy Websocket")
            async for raw_msg in websocket:
                msg = json.loads(raw_msg)
                print(f"收到消息类型: {msg['type']}")
                # 根据消息类型处理业务逻辑
                if msg["type"] == "chat.message":
                    print(f"新聊天消息: {msg['data']['text']}")
    except websockets.exceptions.InvalidStatusCode as e:
        if e.status_code == 401:
            print("认证失败,请重新获取access_token")
        else:
            print(f"连接错误: {e}")

asyncio.run(weavy_websocket_client())

关键注意事项

  • 令牌过期处理:access_token会过期,当WebSocket连接因认证失败断开时,需要重新获取令牌并重连
  • 消息格式兼容:Weavy的WebSocket遵循Hub协议,发送消息(比如调用Weavy的Hub方法)时,需要按照指定JSON结构发送(格式为{"method": "方法名", "arguments": [参数列表], "invocationId": "唯一ID"})
  • 错误处理:捕获连接断开、认证失败等异常,实现自动重连逻辑
  • 自托管配置:如果是自托管Weavy,需确保服务器已启用WebSocket支持,端点路径与配置一致

内容的提问来源于stack exchange,提问作者Sayanta Banerjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:34:55