openfire 采用ibb发送文件的协议过程,调了半天才通,特写此文以做记录。
SEND: <iq type="set" to="vms3@www.ntcipvmssystem.com/Spark" id="MX_4" xmlns="jabber:client">
<si id="2855539e-d180-4d0e-b2d9-57f81f30f741" profile="http://jabber.org/protocol/si/profile/file-transfer" xmlns="http://jabber.org/protocol/si">
<file name="QQ图片20160104104323.jpg" size="318991" xmlns="http://jabber.org/protocol/si/profile/file-transfer">
<desc></desc>
</file>
<feature xmlns="http://jabber.org/protocol/feature-neg">
<x type="form" xmlns="jabber:x:data">
<field var="stream-method" type="list-single">
<option>
<value>http://jabber.org/protocol/ibb</value>
</option>
</field>
</x>
</feature>
</si>
</iq>
RECV: <iq id="MX_4" to="oliver@www.ntcipvmssystem.com/MatriX" from="vms3@www.ntcipvmssystem.com/Spark"
type="result" xmlns="jabber:client">
<si xmlns="http://jabber.org/protocol/si">
<feature xmlns="http://jabber.org/protocol/feature-neg">
<x xmlns="jabber:x:data" type="submit">
<field var="stream-method">
<value>http://jabber.org/protocol/ibb</value>
</field>
</x>
</feature>
</si>
</iq>
SEND: <iq type="set" to="vms3@www.ntcipvmssystem.com/Spark" id="MX_5" xmlns="jabber:client">
<open block-size="4096" sid="2855539e-d180-4d0e-b2d9-57f81f30f741" stanza="iq" xmlns="http://jabber.org/protocol/ibb" />
</iq>
RECV: <iq id="MX_5" to="oliver@www.ntcipvmssystem.com/MatriX"
from="vms3@www.ntcipvmssystem.com/Spark" type="result"
xmlns="jabber:client" />
SEND: <iq type="set" to="vms3@www.ntcipvmssystem.com/Spark" id="MX_6" xmlns="jabber:client">
<data seq="0" sid="2855539e-d180-4d0e-b2d9-57f81f30f741" xmlns="http://jabber.org/protocol/ibb">/9j/4AAQSkZJRgABAQEAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
/iq>
RECV: <iq id="MX_6" to="oliver@www.ntcipvmssystem.com/MatriX" from="vms3@www.ntcipvmssystem.com/Spark"
type="result" xmlns="jabber:client" />
循环发送,直至文件被分多次发送完。