2

私は、Windows で自動的に検出されるハードウェア デバイスを開発しているので、ユーザーにサポート アプリケーションのインストールを強制することを避けるために、mDNS (Zeroconf など) ではなく SSDP を使用することを好みます。デバイスが Windows エクスプローラーのネットワークに表示され、それをクリックして、URL のデバイス IP アドレスを使用して既定のブラウザーを開くだけで済みます。私はすでにコードを作成しました (マルチキャスト M-SEARCH 要求にユニキャストで応答し、起動時および定期的に NOTIFY メッセージを送信します)、Windows PC の Wireshark でメッセージを見ることができますが、デバイスはまだエクスプローラー ネットワークに表示されません。フォルダーに、プリンター、テレビ、メディア プレーヤーなどの他のデバイスが表示され、Wireshark にもそれらのメッセージが表示されます。通知メッセージと応答メッセージの内容についてアドバイスを探しています。

これらは私が送信しているメッセージです:

マルチキャスト:

NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age=100
NT: upnp:rootdevice
USN: uuid:c5baf4a1-0c8e-44da-9714-ef0123411223::upnp:rootdevice
NTS: ssdp:alive
SERVER: NodeMCU/20150415 UPnP/1.1 xpto/0.1
Location: http://192.168.3.246/deviceprofile.xml

M-SEARCH への応答としてのユニキャスト:

HTTP/1.1 200 OK
Cache-Control: max-age=100
EXT:
SERVER: NodeMCU/20150415 UPnP/1.1 xpto/0.1
ST: upnp:rootdevice
USN: uuid:c5baf4a1-0c8e-44da-9714-ef0123411223
Location: http://192.168.3.246/deviceprofile.xml

deviceprofile.xml:

<?xml version='1.0'?>
<root xmlns='urn:schemas-upnp-org:device-1-0'>
<device>
<deviceType>urn:schemas-upnp-org:device:Basic:1</deviceType>
<presentationURL>http://192.168.3.246/</presentationURL>
<friendlyName>Remote control</friendlyName>
<manufacturer>xpto.com</manufacturer>
<manufacturerURL>http://xpto.com/</manufacturerURL>
<serialNumber>10275488</serialNumber>
<UDN>uuid:c5baf4a1-0c8e-44da-9714-ef0123411223</UDN>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:Basic:1</serviceType>
<serviceId>urn:upnp-org:serviceId:1</serviceId>
</service>
</serviceList>
</device></root>

デバイスが Windows エクスプローラーのネットワーク フォルダーに表示されるために他に必要なものはありますか?

前もって感謝します

フェルナンド

4

1 に答える 1