تطبيق SSDP (بروتوكول اكتشاف الخدمة البسيطة) لـ Squeak/Pharo Smalltalk. للتحميل:
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، سأكون ممتنًا بشكل خاص ليتم إعلامي!
تم الترحيل من http://smalltalkhub.com/#!/~henriksp/SSDP باستخدام https://github.com/peteruhnak/git-migration