首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎么使用 XMMP 协议与 openfire交互

2012-04-25 
如何使用 XMMP 协议与 openfire交互?xml version1.0?stream:streamtoexample.comxmlnsjabber:c

如何使用 XMMP 协议与 openfire交互
<?xml version='1.0'?>
<stream:stream
to='example.com'
xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'
version='1.0'>

看了一下 关于XMMP协议。。。
客户端 这样发送给 服务器 然后服务器给的回复是

<?xml version='1.0'?>
<stream:stream
from='example.com'
id='someid'
xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'
version='1.0'>
… encryption, authentication, and resource binding ...


现在用的是建立了个TCP连接。。。然后发送 得到的回复是
 HTTP/1.1 400 Bad Request

问题。。。
1.
<?xml version='1.0'?>
<stream:stream
to='example.com' //这里需要写的是??
xmlns='jabber:client' //这里需要写的是??固定格式??
xmlns:stream='http://etherx.jabber.org/streams'//这里需要写的是??固定格式??
version='1.0'>

[解决办法]
to='example.com' 这个是服务器地址啊
xmlns='jabber:client' 这个是命名空间,表示你发的是何种消息
openfire启动的时候add了很多listener
接到xml消息后会运行一个parse方法,根据你的xmlns是什么,然后构建对应的bean,
再创建reply bean
然后reply bean to xml,再调send方法
就是两端各有一个bean和xml的相互转化,构成一个协议
如果要扩展协议,就自己定义新的命名空间,注册一下监听,新写toxml()和parse()
可以参考一下smack包的IQ扩展方法

热点排行