2013-02-08 65 views
0

對於一個應用程序,我必須發現所有運行的「我的」設備及其版本,以便通過其他協議推送更新。ManagedUPnP:發現搜索URI沒有版本?

但我不知道如何指定發現對象的URI必須搜索,而不必指定對象。

注意:我知道,我也可以發現與空URI的字符串,然後,我收到了設備上的過濾器,但因爲我已經一個巨大的(600 +)UPnP設備的網絡上的數字,而是一個我需要搜索的少量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:*

有任何通配符?佔位符?

回答

2

我認爲您濫用M-SEARCH的版本控制功能。 ST版本意味着接口版本,而不是實施版本和更高版本預計將完全向後兼容。因此你能夠搜索任何版本您的設備,通過簡單地填寫ST:與最低的已知版本。 所有設備都會回覆您,但您搜索的版本不是它們的實際版本(因爲它們向後兼容)。沒有什麼像「通配符」,因爲設備預計將在匹配M-SEARCH要求方面發揮最大作用,而不是吹噓自己的實際版本。

我建議您仔細閱讀UPnP設備體系結構文檔,第1.2.2和1.2.3節圍繞M-SEARCH請求和響應。

如果你想使用UPnP的實現版本發現(這是完全合法的),我建議實施的定製服務與返回的該信息的功能。據我瞭解,你已經有了一個自定義設備。

+0

好的,我不知道。我使用了一個現有的代碼作爲實現版本。我會改變這種行爲。 – J4N 2013-02-11 08:42:37

相關問題