はじめに
個人的な趣味で Vue を使って配信レイアウトを作っているのですが、その中で LiveSplit への WebSocket 接続を行うようにしたのでメモしておきます
(公式で用意されている LiveSplit Server コンポーネントは通常の Socket 通信用なんだよね・・・)
LiveSplit とは
主に RTA で利用される海外製のストップウォッチツール
便利に使うために外部コンポーネントを追加することができる
準備
まずは WebSocket での接続を可能にするために、コンポーネントを追加する
開発途中で API が変更になる可能性があるとのこと
公式の LiveSplit Server と同等のことは現段階でだいたいできるようになっている
-
上記リポジトリの Releases ページから最新版の
LiveSplitWebsocket.zip
をダウンロードし、アーカイブの中身をすべて LiveSplit のComponents
フォルダ内に置く -
LiveSplit 起動後、右クリックメニューから
Edit Layout...
を選び、レイアウト編集画面を開く -
コンポーネント追加メニュー(+マーク)から
Control
->LiveSplit Websocket
を選択
- リストに追加された
LiveSplit Websocket ({ポート番号})
をダブルクリックして設定画面を開くと、ポート番号を変更することができる
- OK ボタンでレイアウト編集を確定後、右クリックメニューから
Control
->Start Server (WS)
を選択すると、内部で WebSocket サーバが起動する(特にメッセージとか出ないけど起動してる)
接続してみる
サーバを起動したので、 wscat を用いて WebSocket 接続を試してみる( Windows 環境のため、 Node.js command prompt からの実行)
>wscat -c localhost:16835/livesplit
Connected (press CTRL+C to quit)
> getcurrenttime
< {"name":"getcurrenttime","data":0.0}
> getGame
< {"name":"getGame","data":{"gameName":"Puzzle Bobble (Arcade)","gameIcon":null,"categoryName":"1 Player","attempts":414,"completedAttempts":18}}
>
getGame
は README に記載されていないが、スプリットの情報を取得するコマンドとして使用できる