class

OyasumiVR::NetworkClient

Inherits OyasumiVR::Client < Reference < Object

UDP で探し、HTTP で読む実装。

Constants

DISCOVERY_TIMEOUT = 2.seconds

応答を待つ長さ。同じ PC の中で応えるものであり、長く待っても見つかる見込みは増えない。

HOST = "127.0.0.1"

OyasumiVR の OSCQuery サーバは 127.0.0.1 にしか bind していない。 応答の A レコードもここを指すため、応答からは読まない。

HTTP_TIMEOUT = 2.seconds
MAX_PACKET_SIZE = 9000

mDNS の応答 1 つの上限(RFC 6762 17 節)。

MDNS_GROUP = Socket::IPAddress.new("224.0.0.251", 5353)
SLEEP_MODE_PATH = "/OyasumiVR/SleepMode"

Instance methods

discover

名前の合う応答を見つけても、127.0.0.1 のそのポートで OyasumiVR が名乗るまでは採らない。

同じ LAN の別の PC で動く OyasumiVR も問い合わせに応える。 そのポートはこの PC には無いため、最初の応答で打ち切ると、 別の PC の応答が先に届いたときに、この PC の OyasumiVR を見つけられない。 確かめられなかった候補は捨て、期限まで次の応答を待つ。

Source
sleep_mode(port : Int32) : Bool

port のサーバから睡眠モードを読む。読めなければ例外を投げる。

Source