← Back to Plugins
Channels

Steam Channel Demo

foilFeng By foilFeng ⭐ 1 stars 👁 50 views ▲ 0 votes

Steam protocol channel for OpenCLAW - Go server + Channel plugin demo

GitHub

Configuration Example

{
  "channels": {
    "steam": {
      "enabled": true,
      "serverUrl": "http://your-go-server:8080",
      "clientId": "user-123",
      "allowFrom": ["user-123"]
    }
  }
}

README

# Steam Channel Demo

## 架构图

```
┌─────────────┐     ┌─────────────────────┐     ┌──────────────┐
│  钉钉用户    │ ──→ │  Go Server          │ ──→ │ OpenCLAW   │
│             │     │ (DingTalk Client   │     │ (Steam Ch)  │
└─────────────┘     │  + WebSocket Server)│     └──────────────┘
                   └─────────────────────┘
```

## 文件结构

```
demo/
├── steam-server/           # Go 服务端
│   └── main.go             # 主程序
│
└── steam-channel/          # OpenCLAW Channel 插件
    ├── index.ts            # 插件入口
    └── src/
        ├── channel.ts      # Channel 插件定义
        ├── monitor.ts     # WebSocket 客户端
        ├── accounts.ts    # 账户解析
        ├── send.ts       # 消息发送
        ├── types.ts      # 类型定义
        └── runtime.ts    # 运行时
```

## 使用方法

### 1. 启动 Go 服务端

```bash
cd steam-server
go mod init steam-server
go get github.com/open-dingtalk/dingtalk-stream-sdk-go
go get nhooyr.io/websocket
go run main.go
```

### 2. 配置 OpenCLAW

在 `openclaw.json` 中添加:

```json
{
  "channels": {
    "steam": {
      "enabled": true,
      "serverUrl": "http://your-go-server:8080",
      "clientId": "user-123",
      "allowFrom": ["user-123"]
    }
  }
}
```

### 3. 安装插件

将 `steam-channel` 复制到 OpenCLAW 的 `extensions` 目录,然后重启 OpenCLAW。

## 消息流程

1. 钉钉用户发送消息 → 钉钉服务端
2. Go Server 接收消息 → 广播给所有连接的 OpenCLAW
3. OpenCLAW 处理消息 → AI 生成回复
4. OpenCLAW 发送回复 → Go Server
5. Go Server 发送消息 → 钉钉用户

## 配置项

| 项 | 说明 |
|---|---|
| serverUrl | Go Server 地址 |
| clientId | 客户端 ID(用于标识用户) |
| allowFrom | 允许的用户 ID 列表 |
channels

Comments

Sign in to leave a comment

Loading comments...