5

upnp/ssdpプロトコルで使用される NOTIFY および M-SEARCH メッセージの目的の背後にある私の混乱を誰かが解決してくれることを願っています。

私の理解では、デバイスが他の UPNP 対応デバイスに自分自身をアドバタイズしたい場合は NOTIFY メッセージが送信され、デバイスが他の UPNP 対応デバイスについて知りたい場合は M-SEARCH メッセージが送信されます。

したがって、私のデバイスがブロードキャスト アドレス (SSDP,239.255.255.250 の場合) を介して他のデバイスから M-SEARCH メッセージを受信した場合、適切な形式で応答します。

HTTP/1.1 200 OK 
 CACHE-CONTROL: max-age = seconds until advertisement expires
 DATE: when response was generated
 EXT: 
 LOCATION: URL for UPnP description for root device
 SERVER: OS/version UPnP/1.0 product/version
ST: search target
USN: advertisement UUID

これが私の質問です。そもそもなぜ NOTIFY メッセージが存在するのでしょうか? M-SEARCH を見て要求されたデバイスにデバイス情報を送り返すので、求められない限り NOTIFY でデバイス情報を事前に通知する意味がないように思えます。 NOTIFY が送信された時点では利用できない場合があります。

つまり、M-SEARCH と比較した NOTIFY の正確な目的を、できれば実際の使用例とともに知りたいと思います。

それとも、このプロトコルを完全に誤解しているだけですか?

4

1 に答える 1

15

例:

  1. コントロールポイントがネットワークに参加
  2. コントロール ポイントは M-SEARCH を送信しますが、応答がありません。
  3. メディア レンダラーがネットワークに参加します
  4. メディア レンダラーが NOTIFY を送信する
  5. コントロール ポイントは NOTIFY に通知し、UI を更新して新しいレンダラーを表示します

NOTIFY 制御ポイントがなければ、新しいデバイスが出現したときに通知したい場合、常にポーリングする必要があります。デバイスがネットワークから離れる場合も同様です (ただし、デバイスが予期せずに離れることがあるため、byeby が送信されることを信頼することはできません)。

于 2013-06-16T19:45:51.020 に答える