关于XMPP格式化文本的研究

协议介绍

XEP-0071 XHTML-IM定义了如何支持Format消息,例如字体,颜色,hyperlink等,格式如下:
<message to='conn@jabber.org/resource1' id='conid74' type='chat'>
  <body>test msg</body>
  <thread>connect29243</thread>
  <html xmlns='http://jabber.org/protocol/xhtml-im'>
    <body xmlns='http://www.w3.org/1999/xhtml'>
      <font color="red">test msg</font>
    </body>
  </html>
  <active xmlns='http://jabber.org/protocol/chatstates'/>
</message>

需要注意的实现细节

发送消息的时候,需要将纯文本放在body中,同时将带格式的消息放在html/body中。需要注意的是,Message中不能包含<, >, &, ', " 5个特殊的字符,在发送给server之前需要将他们做转换 (&lt;, &gt;, &amp;, &apos;, and &quot;),同时对于 &nbsp;也需要做特殊的处理。
对于带格式消息中的<font>, </font>等,我们需要保持原样,否则消息接受者就无法正确的显示消息。

当client接受到一个消息,首先要尝试获取xhtml中的格式消息,如果获取不到,才获取body中的纯文本消息。由于body中只能放普通的文本消息,因此对于hyperlink消息,由于上层给SDK的是类似于<a href="www.sina.com"> sina </a>这样的格式,因此我们需要将这个hyperlink替换为www.sina.com放在body中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值