[Development] Requesting New Repository - QtZeroConf
Konstantin Tokarev
annulen at yandex.ru
Thu Sep 10 18:09:36 CEST 2015
10.09.2015, 18:51, "drwho at infidigm.net" <drwho at infidigm.net>:
>> On Sep 10, 2015, at 12:05, Konstantin Tokarev <annulen at yandex.ru> wrote:
>>
>>> 10.09.2015, 00:56, "Jonathan Bagg" <drwho at infidigm.net>:
>>>> Project name: QtZeroConf
>>>>
>>>> Project description:
>>>> QtZeroConf is a wrapper class for various mDNS discovery libraries
>>>> across
>>>> multiple platforms:
>>>>
>>>> Linux -> Avahi-client
>>>> Android -> Avahi-core or Android Network Discovery Service
>>>> Embedded -> Avahi-core
>>>> MAC -> Apple's Bonjour
>>>> iOS -> Apple's Bonjour
>>>> Window -> Apple's Bonjour
>>>>
>>>> Responsible persons: Jonathan Bagg
>>>>
>>>> (playgound unless suggested otherwise)
>>>> Desired repository name: playground/qtzeroconf
>>>
>>> Does SSDP (UPnP) discovery fit into this project?
>>
>> Maybe we should call the module something more generic like
>> QtServiceDiscovery. Zeroconf can be used to discover both devices and
>> services, but a service on a device is the more specific thing of
>> interest, right?
>
> I would say "discover devices that advertise a specific service"
>
>> Zeroconf also covers self-assigning a network address if there is no DHCP
>> server, but that’s irrelevant to this module, I suppose. (e.g. dhcpcd
>> does that if it times out while trying to find a DHCP server)
>>
>> There are many attempts to come up with a less centralized alternative to
>> DNS. (namecoin, ipfs, various other projects using the DHT concept, even
>> the magnet links used for bittorrent, etc) So, maybe one of those would
>> be in scope some day too. Again the goal would be to map a well-known
>> name to some sort of URI which identifies a service, or a specific file.
>
> I'm ok with this project being called QtServiceDiscovery,
> QtNetworkServiceDiscovery or similar if someone wants to work on the other
> protocols. I can only commit to the zeroconf wrappers.
>
> With multiple protocol support, I guess a parameter to the constructor to
> specify the protocol? I've tried to keep things simple. Service
> advertisement example:
>
> QZeroConf zeroConf;
> zeroConf.registerService("Vaction-Tracker-server", "_vactracker._tcp",
> "local", "", SRV_PORT);
>
> (discovery is just a little more complicated with a signal emitted for
> each resolved service/device)
>
> zeroconf / bonjour has a feature called text records that let apps put
> arbitrary text fields in their service advertisement. I don't think SSDP,
> SLP, or LLMNR support this, so I'm not sure how this zeroconf feature
> would be handled in the abstract case.
SSDP messages are based on HTTP, so one may try to add custom headers to
requests and/or responses. I've never seen them being used in practice
though.
--
Regards,
Konstantin
More information about the Development
mailing list