Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

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

はじめに

個人的な趣味で 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 に記載されていないが、スプリットの情報を取得するコマンドとして使用できる

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?