Sam*_*ted 5 standards xmpp rfc idn
我已经按照RFC 6122中的规定向XMPP客户端添加了国际域名支持.在RFC中它声明:
虽然XMPP应用程序不通过线路传递ToASCII操作的输出(称为"ACE标签"),但必须能够应用该操作而不会使每个国际化标签失败.
但是,使用我可用于测试的域(运行Prosody 0.9.4;正在努力获取其他人关于Ejabberd如何处理此问题的反馈),在XMPP节的"to"字段中发送Unicode名称会导致他们立即返回XMPP错误节并终止流.如果我toASCII在发送节之前应用该操作,则连接成功,我可以开始与服务器进行身份验证.
所以发送:
<somestanza to="éxample.net"/>
Run Code Online (Sandbox Code Playgroud)
会导致错误,同时:
<somestanza to="xn--xample-9ua.net"/>
Run Code Online (Sandbox Code Playgroud)
工作良好.
发送域的ASCII表示(ACE标签)是否正确?如果是这样,当规范"XMPP应用程序不通过线路传递ToASCII操作的输出"时,规范意味着什么?如果没有,我如何确保与行为不当的服务器兼容?