Implementasi SSDP (Simple Service Discovery Protocol) untuk Squeak/Pharo Smalltalk. Untuk memuat:
Metacello new
baseline: ' SSDP ' ;
repository: ' github://rydier/SSDP/repository ' ;
load.
Meskipun SSDP adalah protokol penemuan dasar yang digunakan oleh uPnP, SSDP tidak pernah benar-benar terstandarisasi. Implementasi ini didasarkan pada http://quimby.gnus.org/internet-drafts/draft-cai-ssdp-v1-02.txt , tanpa fungsi proxy, yang dihilangkan pada versi draf yang lebih baru. Jadi intinya, draf versi terbaru itulah yang diimplementasikan. Versi selanjutnya berisi bagian yang lebih luas mengenai dasar pemikiran desain, yang menjadikannya bacaan yang lebih baik bagi mereka yang ingin mempelajari apa itu protokol penemuan dan pengorbanan yang terlibat, namun dengan kepadatan informasi yang jauh lebih sedikit dari sudut pandang seseorang yang menerapkannya. protokol.
Server SSDP:
| server |
server := SSDPServer v4SiteLocal.
server
offerServiceType: ' ssdp:testService '
atLocation: ' http:/test.local/ ' .
server shutDown.
Klien 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. ].
Dokumentasi lebih rinci dapat ditemukan di komentar kelas.
Jika Anda membaca draf selanjutnya, dan menemukan ada sesuatu yang tidak sesuai, silakan buka terbitan atau kirimkan permintaan penarikan.
Jika Anda menerapkan cara yang lebih baik untuk menemukan antarmuka lokal yang tersedia (yang merupakan bagian terburuk dari kode ini) untuk memulai pendengar SSDP, saya sangat berterima kasih jika diberi tahu!
Bermigrasi dari http://smalltalkhub.com/#!/~henriksp/SSDP menggunakan https://github.com/peteruhnak/git-migration