• xmpp笔记2(客户端到服务器的例子)--xml


    xmpp(

    客户端到服务器的例子

    )

    1 步:客户端初始流给服务器: <stream:stream

    xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='example.com'
    version='1.0'>

    步 2:服务器以发送给客户端一个流标记作为响应: <stream:stream

    xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='c2s_123'
    from='example.com'
    version='1.0'>

    步 3:服务器发送 STARTTLS 扩展给客户端,并带有认证机制与任何其它流特征: <stream:features>

    <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'> <required/>

    </starttls>
    <mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>

    <mechanism>DIGEST-MD5</mechanism>

    <mechanism>PLAIN</mechanism> </mechanisms>

    </stream:features>
    步 4:客户端发送 STARTTLS 命令给服务器:

    <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/> 步 5:服务器通知客户端它被允许处理

    <proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
    步 5(替代):服务器通知客户端 TLS 协商失败,并关闭流与 TCP 连接:

    <failure xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>

    </stream:stream>
    步 6:客户端与服务器试图协商通过现存的 TCP 连接 完成 TLS 协商。 步 7:如果 TLS 协商成功,客户端初始化一个新流给服务器:

    <stream:stream xmlns='jabber:client'

    xmlns:stream='http://etherx.jabber.org/streams' to='example.com'
    version='1.0'>

    步 7(代替 ):如果 TLS 协商不成功,服务器关闭 TCP 连接。
    步 8:服务器靠发送带有任何可利用流特征的流头给客户端作为响应。

    <stream:stream xmlns='jabber:client'

    xmlns:stream='http://etherx.jabber.org/streams' from='example.com'
    id='c2s_234'
    version='1.0'>

    <stream:features>
    <mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>

    <mechanism>DIGEST-MD5</mechanism> <mechanism>PLAIN</mechanism>

    <mechanism>EXTERNAL</mechanism> </mechanisms>

    </stream:features>
    步 9:客户端继续 SASL 协商(6)

      

    【微分享】:障碍与失败,是通往成功最稳靠的踏脚石,肯研究、利用它们,便能从失败中培养出成功。

  • 相关阅读:
    tomcat页面跳转问题
    linux shell脚本攻略总结
    nginx中配置tomcat
    centos中文输入法支持
    esxi创建centos系统
    linux日常总结
    你不知道的编码软件排行榜
    Beyond Compare切换比较会话过滤模式的方法
    用Beyond Compare找代码bug的方法
    文件对比工具比较表格时怎么显示行号
  • 原文地址:https://www.cnblogs.com/supersr/p/5291699.html
Copyright © 2020-2023  润新知