SSDP
1.0.0
Squeak/Pharo Smalltalk 用の SSDP (Simple Service Discovery Protocol) 実装。ロードするには:
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 から移行