网站大量收购闲置独家精品文档,联系QQ:2885784924

基于XMPP协议的文件传输 .pdfVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

学习一下基于XMPP协议的文件传输,首先假设用户已经登录,这里假设

ClinetSend对ClinetReceive发送文件,这里记录了ClinetSend的发送和接

收XML流记录

1、发送请求表示要向Clinettest发送文件,并发送文件大小和文件名

Xml代码

1.SEND:iqxmlns=jabber:clientid=agsXMPP_6to=Receive@loc

alhost/type=setsixmlns=p

rofile=id

=b3b5f49c-8a94-49e2-908a-3de694b98af0filexmlns=

ber.org/protocol/si/profile/file-transfername=MiniClient.exe

.configsize=382range//filefeaturexmlns=

er.org/protocol/feature-negxxmlns=jabber:x:datatype=for

mfieldtype=list-singlevar=stream-methodoptionvalue

reams/value/option/f

ield/x/feature/si/iq

2、Receive收到Send发实来的请求后,发送出响应流

Xml代码

1.RECV:iqxmlns=jabber:clientto=Send@localhosttype=resul

tid=agsXMPP_6sixmlns=id=

b3b5f49c-8a94-49e2-908a-3de694b98af0featurexmlns=

abber.org/protocol/feature-negxxmlns=jabber:x:datatype=

submitfieldvar=stream-methodvalue

tocol/byReceivereams/value/field/x/feature/si/iq

3、Send收到Receive愿意接收的响应后,发出如下XML流

Xml代码

1.SEND:iqxmlns=jabber:clientid=agsXMPP_7to=Receive@loca

lhosttype=setqueryxmlns=

ndreamssid=71f1b875-4d84-429c-b39d-7dabcd400f3dstreamhost

jid=Send@localhost/MiniClienthost=localhostport=1000/

streamhostjid=proxy.ag-software.dehost=proxy.ag-software

.deport=7777//query/iq

注意这里注要是代理的设置,agsXMPP自带的客户端是使用代理传输数据的,

所以必须对其做相应的修改,使其支持局域网内支持发送文件.

下面我们来看一下服务器端是如何路由消息的呢?

从上面所发送的XML流我们可以看出,实际上用户传送文件所发送的都是IQ节,

我们必须对IQ节进行路由才能使其找到相应的接收者,所以我们需要在

XmppServerConnection类中添加如下代码:

Java代码

1.privatevoidProcessIQ(IQiq)

2.{

3.//传送文件得理

4.if(iq.Query==null)

5.{

6.if(iq.Type==IqType.result)

7.

文档评论(0)

182****4134 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档