# 插件架构 > **入口**: [_index.md](_index.md) --- ## 1. 插件结构 ``` node-agent/src/ ├── background/ # 后台脚本 │ └── index.ts # 主入口 ├── content/ # 内容脚本 │ └── index.ts # 页面注入 ├── popup/ # 弹窗页面 │ └── index.tsx # 弹窗UI ├── connectors/ # 平台连接器 │ ├── ShopifyConnector.ts │ └── AmazonConnector.ts └── utils/ # 工具函数 ``` --- ## 2. 通信机制 ### 2.1 消息类型 ```typescript // 消息类型定义 interface Message { type: string; payload: any; traceId: string; } // 消息类型枚举 enum MessageType { // 商品采集 COLLECT_PRODUCT = 'COLLECT_PRODUCT', COLLECT_ORDER = 'COLLECT_ORDER', // 自动化操作 AUTO_PUBLISH = 'AUTO_PUBLISH', AUTO_UPDATE_PRICE = 'AUTO_UPDATE_PRICE', // 数据同步 SYNC_INVENTORY = 'SYNC_INVENTORY', SYNC_ORDER = 'SYNC_ORDER', } ``` ### 2.2 消息流程 ``` 前端控制台 → 后端服务 → 插件Background → Content Script → 平台页面 ↑ │ └──────────── 数据回传 ──────────────────┘ ``` --- ## 3. 连接器设计 ### 3.1 连接器接口 ```typescript interface IPlatformConnector { platformCode: string; capabilities: { hasApi: boolean; supportsPriceSync: boolean; supportsInventorySync: boolean; supportsOrderPull: boolean; }; pullProducts(shopId: string): Promise; pullOrders(shopId: string): Promise; pushListing(product: Product): Promise; updatePrice(listingId: string, price: number): Promise; syncInventory(listingId: string, stock: number): Promise; } ``` ### 3.2 连接器实现 ```typescript export class ShopifyConnector implements IPlatformConnector { platformCode = 'SHOPIFY'; capabilities = { hasApi: true, supportsPriceSync: true, supportsInventorySync: true, supportsOrderPull: true, }; async pullProducts(shopId: string): Promise { // Shopify API 调用 } async pullOrders(shopId: string): Promise { // Shopify API 调用 } // ... 其他方法 } ``` --- ## 4. 自动化流程 ### 4.1 任务执行 ``` 1. 后端下发任务 → Redis Queue 2. Agent Worker 接收任务 3. 选择对应 Connector 4. 执行操作(API/页面操作) 5. 回传结果 → 后端服务 6. 更新任务状态 ``` ### 4.2 错误重试 ```typescript const retryOptions = { attempts: 3, backoff: { type: 'exponential', delay: 1000, }, }; ``` --- ## 5. 代理管理 ### 5.1 代理配置 ```typescript interface ProxyConfig { host: string; port: number; username?: string; password?: string; protocol: 'http' | 'https' | 'socks5'; } ``` ### 5.2 代理轮换 ```typescript class ProxyManager { private proxies: ProxyConfig[]; private currentIndex = 0; getNext(): ProxyConfig { const proxy = this.proxies[this.currentIndex]; this.currentIndex = (this.currentIndex + 1) % this.proxies.length; return proxy; } } ``` --- ## 6. 指纹管理 ### 6.1 指纹配置 ```typescript interface FingerprintConfig { userAgent: string; viewport: { width: number; height: number }; locale: string; timezone: string; webgl: { vendor: string; renderer: string }; fonts: string[]; } ``` ### 6.2 指纹生成 ```typescript class FingerprintGenerator { generate(): FingerprintConfig { return { userAgent: this.randomUserAgent(), viewport: this.randomViewport(), locale: 'en-US', timezone: 'America/New_York', webgl: this.randomWebGL(), fonts: this.randomFonts(), }; } } ``` --- *最后更新: 2026-03-22*