Ứng dụng Android (Node)
Ảnh chụp nhanh hỗ trợ
- Vai trò: ứng dụng node đồng hành (Android không chạy Gateway).
- Cần Gateway: có (chạy trên macOS, Linux, hoặc Windows qua WSL2).
- Cài đặt: Bắt đầu + Ghép cặp.
- Gateway: Runbook + Cấu hình.
- Giao thức: Gateway protocol (nodes + control plane).
Điều khiển hệ thống
- Điều khiển hệ thống (launchd/systemd) nằm trên host Gateway. 32. Xem Gateway.
Runbook kết nối
Ứng dụng node Android ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway Android kết nối trực tiếp tới WebSocket của Gateway (mặc địnhws://<host>:18789) và dùng ghép cặp do Gateway quản lý.
Điều kiện tiên quyết
- Bạn có thể chạy Gateway trên máy “master”.
- Thiết bị/trình giả lập Android có thể truy cập WebSocket của gateway:
- Cùng LAN với mDNS/NSD, hoặc
- Cùng tailnet Tailscale sử dụng Wide-Area Bonjour / unicast DNS-SD (xem bên dưới), hoặc
- Nhập thủ công máy chủ/cổng gateway (dự phòng)
- Bạn có thể chạy CLI (
openclaw) trên máy gateway (hoặc qua SSH).
1. Khởi động Gateway
listening on ws://0.0.0.0:18789
- Đặt
gateway.bind: "tailnet"trong~/.openclaw/openclaw.jsontrên máy chủ gateway. - Khởi động lại Gateway / ứng dụng menubar macOS.
2. Xác minh khám phá (tùy chọn)
Từ máy gateway:Khám phá qua unicast DNS-SD trên tailnet (Vienna ⇄ London)
- Khám phá Android NSD/mDNS sẽ không vượt qua các mạng khác nhau. 34. Nếu node Android của bạn và gateway ở trên các mạng khác nhau nhưng được kết nối qua Tailscale, hãy dùng Wide-Area Bonjour / unicast DNS-SD thay thế:
-
Thiết lập một vùng DNS-SD (ví dụ
openclaw.internal.) trên máy chủ gateway và công bố các bản ghi_openclaw-gw._tcp. - Cấu hình Tailscale split DNS cho miền đã chọn, trỏ tới máy chủ DNS đó.
3. Kết nối từ Android
Trong ứng dụng Android:- Ứng dụng giữ kết nối gateway qua foreground service (thông báo liên tục).
- Mở Settings.
- Trong Discovered Gateways, chọn gateway của bạn và nhấn Connect.
- Nếu mDNS bị chặn, dùng Advanced → Manual Gateway (host + port) và Connect (Manual).
- Endpoint thủ công (nếu bật), nếu không
- Gateway được phát hiện lần gần nhất (best-effort).
4. Phê duyệt ghép cặp (CLI)
Trên máy gateway:5. Xác minh node đã kết nối
-
Qua trạng thái nodes:
-
Qua Gateway:
6. Chat + lịch sử
Trang Chat của node Android dùng primary session key của gateway (main), vì vậy lịch sử và phản hồi được chia sẻ với WebChat và các client khác:
- Lịch sử:
chat.history - Gửi:
chat.send - Cập nhật đẩy (best-effort):
chat.subscribe→event:"chat"
Gateway Canvas Host (khuyến nghị cho nội dung web)
Gateway Canvas Host (khuyến nghị cho nội dung web)
Lưu ý: node dùng canvas host độc lập tạicanvasHost.port (mặc định 18793).
Lưu ý: các node tải canvas từ máy chủ Gateway HTTP (cùng cổng với gateway.port, mặc định 18789).
-
Tạo
~/.openclaw/workspace/canvas/index.htmltrên máy chủ gateway. - Điều hướng node tới đó (LAN):
.local, ví dụ: http://<gateway-magicdns>:18789/__openclaw__/canvas/.
- Server này chèn một client live-reload vào HTML và reload khi file thay đổi.
Máy chủ A2UI nằm tại
http://<gateway-host>:18789/__openclaw__/a2ui/.
-
canvas.eval,canvas.snapshot,canvas.navigate(dùng{"url":""}hoặc{"url":"/"}để quay về scaffold mặc định). 38.canvas.snapshottrả về{ format, base64 }(mặc địnhformat="jpeg").
- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(canvas.a2ui.pushJSONLlà alias legacy)
camera.snap(jpg)camera.clip(mp4)