使用agsXMPP SDK向Openfire发送文件的注意事项

使用agsXMPP向Openfire发送文件,一直被service-unavailable错误困扰,详细错误如片段1-1所示。使用agsXMPP自带的Demo MiniClient项目,可以正常发送文件,但在自己的项目中却发送失败。

片段1-1

<iq xmlns="jabber:client" to="6@im.huiyaosoft.com/XmppDemo" id="agsXMPP_5" type="error">
	<si xmlns="http://jabber.org/protocol/si" id="a3536b74-8a75-4ce2-9d84-59088b31bba3" 
		profile="http://jabber.org/protocol/si/profile/file-transfer">
		<file xmlns="http://jabber.org/protocol/si/profile/file-transfer" name="data.xlsx" size="9688"><range /></file>
		<feature xmlns="http://jabber.org/protocol/feature-neg">
			<x xmlns="jabber:x:data" type="form">
				<field var="stream-method" type="list-single">
					<option><value>http://jabber.org/protocol/bytestreams</value></option>
				</field>
			</x>
		</feature>
	</si>
	<error type="cancel" code="503">
		<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
	</error>
</iq>

具体步骤:

1、搭建Openfire服务器,确保5222、7777端口正常,在服务器设置中已启用“文件传送代理”。

2、Openfire配置如图1-1所示,设置正确的xmpp.domain,例如im.openfire.com,确保域名可ping通。

图1-1

3、修改文件frmFileTransfer.cs中的const string PROXY = "proxy.ag-software.de"为const string PROXY = "proxy.im.huiyaosoft.com",其中域名必须遵循proxy.样式。

4、发送文件时,必须指定jid.Resource,否则报503错误,如片段1-2所示。。

片段1-2

Jid jid = new Jid(username + xmppDomain);
jid.Resource = xmppCon.Resource;
frmFileTransfer ft = new frmFileTransfer(xmppCon, jid);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值