MSDP [协议]
Mud Server Data Protocol——和 GMCP 干同一件事,用的是一种紧凑的二进制编码,外加一套 GMCP 所没有的发现机制。
https://www.mudhalla.net/tintin/protocols/msdp/
实测采用情况
在886个已列出的游戏中,有 96 个被观测到提供了它(10.8%)
/zh-Hans/games?protocol=MSDP
未算进这里的游戏,并不是没有这个协议的游戏。一个游戏被算进这里,条件是我们观测到它的服务器在一次握手中提供了这个选项;其余的既包括没有向我们提供它的服务器,也包括我们还没有读到过握手的服务器,而我们说不出是哪一种。
按代码库,在我们已识别的游戏中
CoffeeMUD 32 个中有 16 个提供了它
Evennia 11 个中有 11 个提供了它
CircleMUD 47 个中有 9 个提供了它
ROM 55 个中有 6 个提供了它
SMAUG 20 个中有 5 个提供了它
tbaMUD 5 个中有 4 个提供了它
DikuMUD 35 个中有 3 个提供了它
AresMUSH 18 个中有 0 个提供了它
CobraMUSH 2 个中有 0 个提供了它
FluffOS 28 个中有 0 个提供了它
MUCK 24 个中有 0 个提供了它
PennMUSH 34 个中有 0 个提供了它
RhostMUSH 40 个中有 0 个提供了它
TinyMUSH 9 个中有 0 个提供了它
MSDP 是 telnet 选项 69,它解决的问题与 GMCP [/reference/protocols/gmcp] 相同:
在文本之外发送结构化数据,好让客户端不必从字里行间去抠数字。
差别有两处。MSDP 的编码是二进制且紧凑的——变量和取值用单个控制字节来标记,而不是包进 JSON—— 并且 MSDP 定义了一套发现用的对话:客户端可以用
LIST 索取 COMMANDS、REPORTABLE_VARIABLES 等等,从而被告知某个游戏支持些什么。GMCP 没有对等的东西,这就是 GMCP
客户端一般得逐个游戏去配置的原因。
实际上,GMCP 在采用率上赢了,而 MSDP 在那些实现过它的服务器和客户端里留存下来,常常与 GMCP 并存。
我们实测的是什么
一个游戏被算进这里,条件是它的服务器在我们观测到的一次握手中提供了 MSDP。和本节里的每一个数字一样,
那是一次正面的观测,而剩下的部分并不是它的反面——一个没被算进来的游戏,可能没有实现 MSDP, 也可能只是它的握手还没被我们读到过。
另见
GMCP — /zh-Hans/reference/protocols/gmcp
TinTin++ — /zh-Hans/reference/clients/tintin
Blightmud — /zh-Hans/reference/clients/blightmud