【问题标题】:ManagedUPnP: Discovery search URI without version?ManagedUPnP:没有版本的发现搜索 URI?
【发布时间】:2013-02-11 05:39:36
【问题描述】:

对于一个应用程序,我必须发现所有运行的“我的”设备及其版本,以向它们推送更新(通过另一个协议)。

但我不知道如何为发现对象指定它必须搜索的 URI,而不必指定对象。

注意:我知道我也可以使用空 URI 字符串进行发现,然后在收到的设备上进行过滤,但由于我在网络,但我需要搜索少量的 UPnP 设备(~20),这将花费大量时间,我正在寻找一种有效的方法。

所以,如果我的 URN 如下:urn:upnp-org:device:TestDevice:2.2.5,我想拥有 urn:upnp-org:device:TestDevice:*,我该怎么做?

我试过了

urn:upnp-org:device:TestDevice: urn:upnp-org:device:TestDevice:*

有通配符吗?占位符?

【问题讨论】:

    标签: c# .net upnp


    【解决方案1】:

    我认为您滥用了M-SEARCH 的版本控制功能。 ST 版本表示接口版本,而不是实现版本,更高版本应完全向后兼容。因此,您能够搜索您设备的任何版本,只需用已知的最低版本填写ST:所有设备都会响应您,但使用您搜索的版本,而不是它们的实际版本(因为它们向后兼容)。没有什么比得上“通配符”了,因为设备应该尽最大努力满足M-SEARCH 的要求,而不是吹嘘自己的实际版本。

    我建议彻底阅读 UPnP 设备架构文档,第 1.2.2 和 1.2.3 章围绕 M-SEARCH 请求和响应。

    如果您想使用 UPnP 进行 实施版本 发现(这是完全合法的),我建议使用返回该信息的函数来实施自定义服务。据我了解,您已经有一个自定义设备。

    【讨论】:

    • 好吧,我不知道。我采用了现有代码,将其用作实现版本。我会改变这种行为。
    猜你喜欢
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多