协议
TTYPE and MTTS
客户端如何告诉服务器自己是什么、能做什么——包括在它愿意开口的时候,说出正有人在使用屏幕阅读器。
实测采用情况
0 在886个已列出的游戏中——0.0%
未算进这里的游戏,并不是没有这个协议的游戏。一个游戏被算进这里,条件是我们观测到它的服务器在一次握手中提供了这个选项;其余的既包括没有向我们提供它的服务器,也包括我们还没有读到过握手的服务器,而我们说不出是哪一种。
| 代码库 | 已提供 | 已识别 |
|---|---|---|
| AresMUSH | 0 | 18 |
| CircleMUD | 0 | 47 |
| CobraMUSH | 0 | 2 |
| CoffeeMUD | 0 | 32 |
| DikuMUD | 0 | 35 |
| Evennia | 0 | 11 |
| FluffOS | 0 | 28 |
| MUCK | 0 | 24 |
| PennMUSH | 0 | 34 |
| RhostMUSH | 0 | 40 |
| ROM | 0 | 55 |
| SMAUG | 0 | 20 |
| tbaMUD | 0 | 5 |
| TinyMUSH | 0 | 9 |
TTYPE 是 telnet 选项 24,出自 RFC 1091:服务器问客户端它是什么终端,客户端作答。
历史上这个答案是 VT100 或 ANSI。
MTTS——Mud Terminal Type Standard——在它之上叠了一层约定。客户端回答三次:它的名字、
它的终端类型,然后是 MTTS <bitmask>,其中的各个比特位自述它具备哪些能力。256 色、真彩色、
UTF-8、MNES、走带外的 MSP——以及很值得注意的 MTTS_SCREEN_READER。
屏幕阅读器那一位
最后这一项值得停下来说一说,因为在这个圈子的协议栈里,只有这一处把无障碍当作一等的概念。
设置了这一位的客户端,是在告诉服务器有人正在使用屏幕阅读器;注意到这一点的服务器可以随之调整: 不再输出 ASCII 图画,去掉房间描述外面那圈装饰性的制表边框,改变表格的排版方式。 TinTin++ 和 Blightmud 都会声明它, Mudlet 有一个对应的设置项。
至于某个具体的游戏是否真的据此做了什么,那是另一个问题,而且不是本站能实测的问题—— 我们没法去问一台服务器,它会做出什么不一样的处理。
爬虫在这里该尽的本分
爬虫要通过 TTYPE 表明自己的身份,它也应该这么做。我们的爬虫就这么做,并附上一个说明页地址,
好让翻看日志的管理员能弄清是谁一直在连他们的游戏,以及该怎么让我们停下。
一个只回答 ANSI、别的什么都不说的爬虫,是设计上就匿名的,而这没有什么好理由。
我们实测的是什么
与我们协商了 TTYPE 的服务器。要注意,这是少数几个由我们作为被询问一方的选项之一, 所以这里的数字,数的是那些愿意开口来问的服务器。