iii-browser-sdk

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Browser SDK

浏览器SDK

The browser-optimized SDK for connecting web applications to the iii engine.
专为Web应用连接iii引擎优化的浏览器端SDK。

Documentation

文档

Install

安装

npm install iii-browser-sdk
npm install iii-browser-sdk

Key Exports

核心导出项

ExportPurpose
registerWorker(address, options?)
Connect to the engine via WebSocket
registerFunction(id, handler)
Register a browser-side function handler
registerTrigger({ type, function_id, config, metadata? })
Bind a trigger to a function
trigger({ function_id, payload, action? })
Invoke a function
TriggerAction.Void()
Fire-and-forget invocation mode
TriggerAction.Enqueue({ queue })
Durable async invocation mode
registerTriggerType({ id, description }, { registerTrigger, unregisterTrigger })
Custom trigger type registration
createChannel()
Binary streaming between workers
导出项用途
registerWorker(address, options?)
通过WebSocket连接到引擎
registerFunction(id, handler)
注册浏览器端函数处理程序
registerTrigger({ type, function_id, config, metadata? })
将触发器绑定到函数
trigger({ function_id, payload, action? })
调用函数
TriggerAction.Void()
即发即弃调用模式
TriggerAction.Enqueue({ queue })
持久化异步调用模式
registerTriggerType({ id, description }, { registerTrigger, unregisterTrigger })
自定义触发器类型注册
createChannel()
Worker之间的二进制流传输

Key Differences from Node SDK

与Node SDK的核心差异

  • No custom WebSocket headers — uses query parameters for auth tokens
  • No
    Logger
    export — use browser console or your own logging
  • No worker metadata telemetry reporting
  • Connects directly via
    ws://
    or
    wss://
    URL (no
    registerWorker
    URL options)
  • Same function/trigger/channel API surface as the Node SDK
  • 无自定义WebSocket请求头 — 使用查询参数传递认证令牌
  • Logger
    导出项 — 使用浏览器控制台或自定义日志工具
  • 无Worker元数据遥测报告
  • 直接通过
    ws://
    wss://
    URL连接(无
    registerWorker
    URL选项)
  • 函数/触发器/通道API接口与Node SDK一致

Quick Start

快速开始

typescript
import { registerWorker, TriggerAction } from 'iii-browser-sdk'

const iii = registerWorker('ws://localhost:49135')

iii.registerFunction('ui::greet', async (data) => {
  return { message: `Hello, ${data.name}!` }
})

const result = await iii.trigger({
  function_id: 'backend::get-user',
  payload: { userId: '123' },
})

await iii.trigger({
  function_id: 'analytics::track',
  payload: { event: 'page_view' },
  action: TriggerAction.Void(),
})
typescript
import { registerWorker, TriggerAction } from 'iii-browser-sdk'

const iii = registerWorker('ws://localhost:49135')

iii.registerFunction('ui::greet', async (data) => {
  return { message: `Hello, ${data.name}!` }
})

const result = await iii.trigger({
  function_id: 'backend::get-user',
  payload: { userId: '123' },
})

await iii.trigger({
  function_id: 'analytics::track',
  payload: { event: 'page_view' },
  action: TriggerAction.Void(),
})

Common Patterns

常见模式

Code using this pattern commonly includes, when relevant:
  • registerWorker('ws://host:49135')
    — connect from browser
  • registerWorker('wss://host:49135')
    — connect with TLS in production
  • iii.registerFunction(id, handler)
    — register browser-side handler
  • iii.trigger({ function_id, payload })
    — call server-side functions
  • iii.trigger({ ..., action: TriggerAction.Void() })
    — fire-and-forget from browser
  • Stream connections at
    ws://host:3112/stream/{name}/{group}
    for real-time updates
相关场景下,使用该模式的代码通常包含:
  • registerWorker('ws://host:49135')
    — 从浏览器连接到引擎
  • registerWorker('wss://host:49135')
    — 生产环境下通过TLS连接
  • iii.registerFunction(id, handler)
    — 注册浏览器端处理程序
  • iii.trigger({ function_id, payload })
    — 调用服务端函数
  • iii.trigger({ ..., action: TriggerAction.Void() })
    — 浏览器端即发即弃调用
  • 通过
    ws://host:3112/stream/{name}/{group}
    建立流连接以获取实时更新

Pattern Boundaries

模式适用边界

  • For server-side Node.js workers, prefer
    iii-node-sdk
    .
  • For real-time stream consumption patterns, see
    iii-realtime-streams
    .
  • For Python or Rust workers, see
    iii-python-sdk
    or
    iii-rust-sdk
    .
  • Stay with
    iii-browser-sdk
    when the client is a web browser.
  • 服务端Node.js Worker请使用
    iii-node-sdk
  • 实时流消费模式请参考
    iii-realtime-streams
  • Python或Rust Worker请使用
    iii-python-sdk
    iii-rust-sdk
  • 客户端为Web浏览器时,请使用
    iii-browser-sdk

When to Use

使用场景

  • Use this skill when the task is primarily about
    iii-browser-sdk
    in the iii engine.
  • Triggers when the request directly asks for this pattern or an equivalent implementation.
  • 当任务主要涉及iii引擎中的
    iii-browser-sdk
    时,使用该技能。
  • 当请求直接要求该模式或等效实现时触发。

Boundaries

边界限制

  • Never use this skill as a generic fallback for unrelated tasks.
  • You must not apply this skill when a more specific iii skill is a better fit.
  • Always verify environment and safety constraints before applying examples from this skill.
  • 切勿将该技能作为无关任务的通用回退方案。
  • 当有更特定的iii技能更合适时,不得使用该技能。
  • 在应用该技能中的示例前,务必验证环境和安全约束。