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 迁移