Nano Banana Pro
Agent skill for nano-banana-pro
这是用于记录自动化实现分析、需求背景、方案设计与后续落地参考的工作文档,帮助后续实现保持上下文一致。
Sign in to like and favorite skills
这是用于记录自动化实现分析、需求背景、方案设计与后续落地参考的工作文档,帮助后续实现保持上下文一致。
esp32设备端 参考代码如下: https://github.com/maker-community/xiaozhi-esp32/blob/signalr/main/signalr_client.cc
signalr服务端参考代码如下: https://github.com/maker-community/esp-signalr-example/tree/main/signalr-server
来源文件:xiaozhi-esp32/main/signalr_client.cc
关键点:
hub_connection_builder,并 skip_negotiation(true),直连 WebSocket。access_token(适配 ASP.NET Core SignalR 的 WebSocket 认证标准)。server_timeout = 60skeepalive_interval = 15shandshake_timeout = 5sNotification 作为连接确认事件(服务端连接后主动推送)。CustomMessage 为业务主通道(JSON 字符串,ESP32 使用 cJSON 解析)。结论: ESP32 端当前与 SignalR 的交互模型是:
CustomMessage 接收业务控制指令。Notification 确认连接建立。access_token 传递。来源目录:esp-signalr-example/signalr-server
Program.cs:
/chatHub。/api/device/*,通过 Hub 推送 CustomMessage。/api/device/* 支持广播或指定 connectionId。ChatHub.cs:
OnConnectedAsync:记录 ConnectionId、IP、UserAgent,并输出 access_token 的 query 信息。Notification:连接成功后,主动通知客户端。CustomMessage:服务端通过 Hub SendAsync("CustomMessage", json) 推送。结论: 示例服务端只做连接管理和消息转发,不涉及真实用户体系和设备绑定。
当前 Verdure MCP 为 ASP.NET Core 服务,重点特性:
McpDbContext 和基础实体)。目前尚无 SignalR Hub 与设备绑定业务模型。
userId 推送消息到设备。mac + userToken。新增模块(建议在 Verdure.Mcp.Server + Verdure.Mcp.Domain + Verdure.Mcp.Infrastructure):
SignalR Hub:接收设备连接、注册与业务事件。Device Registry 服务:维护在线连接与用户绑定关系。Device Push Service:根据 userId 推送到指定设备(基于 Hub + Groups)。建议新增 Hub:
DeviceHub
access_token 并解析 userId。RegisterDevice(mac, deviceToken, meta)。Users:{userId}。关键事件:
Notification:用于连接成功确认。CustomMessage:保留对 ESP32 的指令通道。DeviceStatus:设备上报状态心跳。新增实体示例(可用于后续持久化与社交扩展):
Device
Id, MacAddress, OwnerUserId, LastSeenAt, Status, MetadataDeviceConnection
ConnectionId, DeviceId, UserId, ConnectedAt, LastHeartbeatAtDeviceBinding
Id, OwnerUserId, TargetUserId, DeviceId, Status建议流程:
access_token。RegisterDevice(mac, token)。userId,建立 Device、DeviceConnection。Device.OwnerUserId = userId。目标: MCP 能够
SendToUser(userId, payload)。
实现方式:
Users:{userId}。IHubContext<DeviceHub>.Clients.Group(...)。DeviceIdDeviceBinding 可作为社交连接关系(设备/用户之间的授权)。CustomMessage)。userId 推送)。access_token 放到 URL 查询参数。Notification 确认连接。CustomMessage,服务端继续通过该事件推送即可。本文件用于后续实现时快速理解背景与目标,避免重复分析。