mu*index
阅读方式
主题
MXP  [协议]
MUD eXtension Protocol——嵌在文本流里的类 HTML 标记,带来可点击的链接、图片和表单。规范写得详尽,实现却参差不齐。
https://www.zuggsoft.com/zmud/mxp.htm

实测采用情况
  在886个已列出的游戏中,有 122 个被观测到提供了它(13.8%)
  /zh-Hans/games?protocol=MXP

  未算进这里的游戏,并不是没有这个协议的游戏。一个游戏被算进这里,条件是我们观测到它的服务器在一次握手中提供了这个选项;其余的既包括没有向我们提供它的服务器,也包括我们还没有读到过握手的服务器,而我们说不出是哪一种。

  按代码库,在我们已识别的游戏中
    CoffeeMUD            32 个中有 30 个提供了它
    CircleMUD            47 个中有 9 个提供了它
    ROM                  55 个中有 9 个提供了它
    DikuMUD              35 个中有 5 个提供了它
    SMAUG                20 个中有 5 个提供了它
    tbaMUD               5 个中有 4 个提供了它
    Evennia              11 个中有 2 个提供了它
    PennMUSH             34 个中有 1 个提供了它
    AresMUSH             18 个中有 0 个提供了它
    CobraMUSH            2 个中有 0 个提供了它
    FluffOS              28 个中有 0 个提供了它
    MUCK                 24 个中有 0 个提供了它
    RhostMUSH            40 个中有 0 个提供了它
    TinyMUSH             9 个中有 0 个提供了它

MXP 在服务器发出的文本里嵌入了一门小巧的、类似 HTML 的标记语言:<send> 表示一条可点击的命令, <a href>
表示一个链接,另有颜色和字体元素,以及一套让服务器自定义标签的机制。 它在 telnet 选项 91 上协商。

它的设计难题是固有的,也很有意思:标记与文本走在同一条流里,所以服务器必须小心那些看起来像标记的文本, 而客户端必须小心自己会渲染什么。MXP
定义安全级别正是为了这个原因—— 夹在另一个玩家的一行聊天里送来的标签,和服务器自己发出的标签不是一回事。

人们想要它,是为了可点击

MXP 实际用途的大部分,就是把 north 和物品名变成可以点的东西。对新玩家来说这个差别相当大, 也正因如此,这个协议尽管复杂,却还是不断有人实现。

PUEBLO 是另外那一个

Pueblo [/reference/protocols/pueblo] 比 MXP 更早,用一种不同的、字面上更像 HTML 的做法干着类似的活。
支持其中一个的客户端往往并不支持另一个,而在读功能清单时这两者很容易混淆—— 本节里的客户端对照表就得小心提防这个错误。

我们实测的是什么

在我们观测到的握手中提供了 telnet 选项 91 的服务器。MXP 被协商的频率低于那些带外协议,
一部分原因是它的价值有很大一块,是由那些干脆不协商、直接把标记发出去碰运气的服务器实现的—— 而那些我们看不见。

另见
  Pueblo — /zh-Hans/reference/protocols/pueblo
  MUSHclient — /zh-Hans/reference/clients/mushclient
  Mudlet — /zh-Hans/reference/clients/mudlet