LoginSignup
1
1

More than 1 year has passed since last update.

WebSocket で LiveSplit にアクセスし情報を取得する

Posted at

はじめに

個人的な趣味で Vue を使って配信レイアウトを作っているのですが、その中で LiveSplit への WebSocket 接続を行うようにしたのでメモしておきます
(公式で用意されている LiveSplit Server コンポーネントは通常の Socket 通信用なんだよね・・・)

LiveSplit とは

主に RTA で利用される海外製のストップウォッチツール
便利に使うために外部コンポーネントを追加することができる

準備

まずは WebSocket での接続を可能にするために、コンポーネントを追加する
開発途中で API が変更になる可能性があるとのこと
公式の LiveSplit Server と同等のことは現段階でだいたいできるようになっている

  1. 上記リポジトリの Releases ページから最新版の LiveSplitWebsocket.zip をダウンロードし、アーカイブの中身をすべて LiveSplit の Components フォルダ内に置く

  2. LiveSplit 起動後、右クリックメニューから Edit Layout... を選び、レイアウト編集画面を開く

  3. コンポーネント追加メニュー(+マーク)から Control -> LiveSplit Websocket を選択

    • リストに追加された LiveSplit Websocket ({ポート番号}) をダブルクリックして設定画面を開くと、ポート番号を変更することができる
  4. 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 に記載されていないが、スプリットの情報を取得するコマンドとして使用できる

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1