Files
VRCT/src-python/docs/modules/websocket.md
misyaguziya 5efa9c37d6 Add documentation for modules and runtime instructions
- Created detailed documentation for the device_manager, model, model_extra, osc, overlay, overlay_image, transcription, translation, transliteration, utils, watchdog, and websocket modules.
- Added a comprehensive run events payloads document outlining the payloads sent during various run events in the controller.
- Included runtime instructions and dependencies for setting up the project in a Windows environment.
- Introduced a mypy configuration file to manage type checking and ignore errors in specific modules temporarily.
2025-10-09 13:11:59 +09:00

19 lines
1.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# models/websocket — 詳細設計
目的: 外部クライアント(例えば第三者のアプリ)へ翻訳済みテキストやイベントをブロードキャストする軽量 WebSocket サーバー。
API:
- class WebSocketServer(host='127.0.0.1', port=8765)
- start(): 別スレッドで asyncio ループを生成しサーバを起動。
- stop(): サーバ停止、全クライアント切断。
- set_message_handler(handler): クライアントからのメッセージ受信時のコールバックを登録。handler(server, websocket, message)
- send(message): 非同期キューに積んで全クライアントへ送信(スレッドセーフ)。
- broadcast(message): asyncio を経由して即時ブロードキャスト。
実装上の工夫:
- サーバ本体は別スレッドで asyncio イベントループを run_forever している。
- 送信用に内部キュー `_send_queue` を持ち、_send_loop で順次送信する。これにより GUI 等から安全に send() を呼べる。
依存: websocketsasyncio