Replace UPnP/SSDP with DNS-SD #104262
Labels
No Label
Good First Issue
Priority
High
Priority
Low
Priority
Normal
Status
Archived
Status
Confirmed
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Job Type
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: studio/flamenco#104262
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Currently Flamenco uses UPnP/SSDP for auto-discovery of Managers on the local network. This has some issues, most notably other applications hogging the necessary UDP port (Spotify is a common example).
It's likely better to move to DNS Service Discovery (DNS-SD), which uses multicast DNS. It's widely used for exposing services & devices on a network; Chromecasts, ESPHome devices, and printers are commonly exposed like this.
Since DNS-SD also works by listening on a multicast UDP port, it could have the same compatibility issues as UPnP/SSDP. To resolve that, Flamenco should rely on platform-specific APIs as much as possible, so that a system daemon can handle the actual network traffic.
The code below can be used to expose a service via DNS-SD. It seems to work well on my Windows 10 Pro machine at home, but hasn't been tested widely. It could be used as a fallback, when the system-specific approaches above fail or are otherwise unavailable.