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)
SourceInstance methods
connected?
Sourceendpoint
SourceMessage を送信する。 接続断などで送信できなかった場合は false を返し、呼び出し側はその通知を破棄する。
settings
Sourcesettings=(settings : Settings)
Source