SSDP
1.0.0
Squeak/Pharo Smalltalk 的 SSDP(簡單服務發現協定)實作。載入:
Metacello new
baseline: ' SSDP ' ;
repository: ' github://rydier/SSDP/repository ' ;
load.
儘管 SSDP 是 uPnP 使用的底層發現協議,但它從未真正完全標準化。此實作基於 http://quimby.gnus.org/internet-drafts/draft-cai-ssdp-v1-02.txt ,減去代理功能,該功能在後來的草案版本中被刪除。所以本質上,最新版本的草案就是要實施的內容。最新版本包含了更多有關設計原理的擴展部分,這對於那些想要了解發現協議的全部內容以及所涉及的權衡的人來說是更好的閱讀,但從實施者的角度來看,資訊密度要低得多協議。
SSDP伺服器:
| server |
server := SSDPServer v4SiteLocal.
server
offerServiceType: ' ssdp:testService '
atLocation: ' http:/test.local/ ' .
server shutDown.
SSDP客戶端:
| client |
client := SSDPClient v4SiteLocal.
client filter: ' ssdp:all '
whenAvailable: [ :resource |
resource printOn: Transcript .
' is available ' printOn: Transcript .
Transcript nextPut: Character cr. ]
whenUnavailable: [ :resource |
resource printOn: Transcript .
' is becoming unavailable ' printOn: Transcript .
Transcript nextPut: Character cr. ].
更詳細的文件可以在課程評論中找到。
如果您閱讀了後來的草稿,發現有些內容不一致,請提出問題或發送拉取請求。
如果您實作了更好的方法來發現可用的本機介面(這是程式碼中最糟糕的部分)來啟動 SSDP 偵聽器,我將特別感謝您的通知!
使用 https://github.com/peteruhnak/git-migration 從 http://smalltalkhub.com/#!/~henriksp/SSDP 遷移