开始一个流

一旦建立了 TCP 连接,初始流头部就由发起实体发送。类似地,每当需要重新启动流时(例如,在协商诸如 TLS 的安全层之后),还必须发送流头:

<?xml version='1.0'?>
<stream:stream
    from='juliet@im.example.com'
    to='im.example.com'
    version='1.0'
    xml:lang='en'
    xmlns='jabber:client'
    xmlns:stream='http://etherx.jabber.org/streams'>

XML 标头是可选的,但如果它存在,则它不能使用 UTF-8 编码指定除 XML 1.0 之外的任何内容。

作为响应,接收实体将发送其自己的包含唯一会话 ID 的开放流标记:

<?xml version='1.0'?>
<stream:stream
    from='im.example.com'
    id='++TR84Sm6A3hnt3Q065SnAbbk3Y='
    to='juliet@im.example.com'
    version='1.0'
    xml:lang='en'
    xmlns='jabber:client'
    xmlns:stream='http://etherx.jabber.org/streams'>