class

XSOverlay::WebsocketRepository

Inherits Notify::PostRepository < Reference < Object

XSOverlay の WebSocket API へ送るシンク実装(仕様書 4.4 節)。

接続の維持は専用のファイバに閉じ、send_message は接続済みのときだけ送る。 未接続の間に発生した通知はキューせず破棄する。 XSOverlay が動いていない状況とは VR 外である可能性が高く、 そのとき通知は通常のトーストで見えているため、後からまとめて HMD へ流す価値がないからである。

Constants

BACKOFF_MAX = 30.seconds
BACKOFF_MIN = 1.second

再接続の待ち時間。切断が続く間は最大値まで倍にしていく。

CLIENT_NAME = "KxNotifyUtils"

client クエリパラメータが無いと XSOverlay 側が接続を拒否するため、必ず付与する。

Log = ::Log.for("xsoverlay")
STABLE_CONNECTION = 30.seconds

接続が安定したとみなす長さ。 これより長く続いた接続が切れたときだけ、待ち時間を初期値へ戻す。

Constructors

new(settings : Settings)
Source

Instance methods

connected?
Source
endpoint
Source
send_message(message : Notify::Message) : Bool

Message を送信する。 接続断などで送信できなかった場合は false を返し、呼び出し側はその通知を破棄する。

Source
settings
Source
settings=(settings : Settings)
Source
sink_id

このシンクの識別子。ログとテスト通知の宛先表示に使う。

Source
start

シンクへの接続を開始する。

Source
stop

シンクへの接続を終了する。

Source