Une implémentation SSDP (Simple Service Discovery Protocol) pour Squeak/Pharo Smalltalk. Pour charger :
Metacello new
baseline: ' SSDP ' ;
repository: ' github://rydier/SSDP/repository ' ;
load.
Bien que SSDP soit le protocole de découverte sous-jacent utilisé par uPnP, il n'a jamais été vraiment entièrement standardisé. Cette implémentation était basée sur http://quimby.gnus.org/internet-drafts/draft-cai-ssdp-v1-02.txt , sans la fonctionnalité proxy, qui a été abandonnée dans une version préliminaire ultérieure. Donc, en substance, c’est la dernière version du projet qui est mise en œuvre. La dernière version contient des sections beaucoup plus étendues sur les justifications de conception, ce qui en fait une bien meilleure lecture pour ceux qui veulent savoir ce qu'est un protocole de découverte et les compromis impliqués, mais avec beaucoup moins de densité d'informations du point de vue de quelqu'un qui met en œuvre. le protocole.
Serveur SSDP :
| server |
server := SSDPServer v4SiteLocal.
server
offerServiceType: ' ssdp:testService '
atLocation: ' http:/test.local/ ' .
server shutDown.
Client 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. ].
Une documentation plus détaillée peut être trouvée dans les commentaires de la classe.
Si vous lisez le brouillon ultérieur et découvrez que quelque chose n'est pas conforme, veuillez ouvrir un problème ou envoyer une pull request.
Si vous implémentez une meilleure façon de découvrir les interfaces locales disponibles (ce qui est la pire partie du code en l'état) pour démarrer les écouteurs SSDP, j'apprécierais particulièrement d'être averti !
Migré depuis http://smalltalkhub.com/#!/~henriksp/SSDP à l'aide de https://github.com/peteruhnak/git-migration