Перейти к содержимому
FastOffice

Тот же контракт через WebSocket

Запуск fastdoc-cli с loopback WebSocket, порядок подключения с token, минимальный клиентский цикл и отличия от JSONL.

WebSocket удобен, если shell уже асинхронный и работает на Web-технологиях. Rust сам выбирает свободный loopback-порт и печатает одноразовый bootstrap с token.

Окно терминала
cd ~/Desktop/A4-API-first-run
node a4-websocket-demo.mjs

Запустите fastdoc-cli serve –ws 0 как дочерний процесс.

Прочитайте первую строку stdout: host, port, token и schema.

Подключитесь к ws://127.0.0.1:<port>/?token=<token>.

Дождитесь session bootstrap fastdoc.session-serve.v1.

Отправляйте те же JSON-объекты, что и в JSONL.

При закрытии приложения сначала отправьте shutdown, затем закройте сокет и дочерний процесс.

1. WebSocket: ws://127.0.0.1:52601
2. Session protocol: fastdoc.session-serve.v1
3. Ping: true
4. Before: This is a sample word document. It has two pages, but no headers or footers.
5. After: WS API DEMO: This is a sample word document. It has two pages, but no headers or footers.
6. Saved: /Users/tester/Desktop/A4-API-first-run/api-demo-websocket-result.docx
7. Reopened from disk: WS API DEMO: This is a sample word document. It has two pages, but no headers or footers.
RESULT: PASS
const child = spawn(cli, ["serve", "--ws", "0"]);
const bootstrap = JSON.parse(await firstLine(child.stdout));
const ws = new WebSocket(
`ws://${bootstrap.host}:${bootstrap.port}/?token=${bootstrap.token}`
);
ws.send(JSON.stringify({ id: "p1", cmd: "ping" }));

ШАГ 5

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.