Channels
Steam Channel Demo
Steam protocol channel for OpenCLAW - Go server + Channel plugin demo
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