Mostly about remote controlling via network requests
|Roku Docs - Start Page
|Roku Docs - External Control Protocol (ECP)
|Roku Remote Tool (and Tester)
|remoku (online remote)
Discovery uses SSDP (Simple Service Discovery Protocol). This uses a few special protocols, most notably UPnP which is usually a router feature, and special packet types, like
M-SEARCH instead of
Theoretically, you could scan the entire IP range and make HTTP requests to an HTTP endpoint until you get a successful response back, but that is highly impractical.
As mentioned above, discovery, as well as some other Roku features, require using special network packets. As such, multiple people have built out NodeJS client libraries, which in turn usually use
node-ssdp (link) for generating the packets.