如何使用 jabber net 在 c# Windows 应用程序中实现文件传输

Posted

技术标签:

【中文标题】如何使用 jabber net 在 c# Windows 应用程序中实现文件传输【英文标题】:How to implement File transfer in c# Windows app using jabber net 【发布时间】:2019-08-06 11:08:04 【问题描述】:

我正在使用 jabber net 和 ejabberd 开发一个聊天应用程序。我完成了与 xmpp 的一对一聊天对话。现在要实现JID之间的文件传输

我参考了有关 xmpp (xep-0066) 中的 oob 传输的文档。 我跟着这个文档,服务器响应中没有列出 oob 功能。

<iq type='get'
    from='juliet@capulet.lit/balcony'
    to='romeo@montague.lit/orchard'
    id='disco1'>
  <query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>

预期:

<iq type='result'
    from='romeo@montague.lit/orchard'
    to='juliet@capulet.lit/balcony'
    id='disco1'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
    ...
    **<feature var='jabber:iq:oob'/>
    <feature var='jabber:x:oob'/>**
    ...
  </query>
</iq>

我的服务器响应中未启用 OOB 功能。如何解决?

【问题讨论】:

【参考方案1】:

XEP-0060 是一个客户端协议,独立于服务器,因此您应该向您的联系人发送查询(使用 FullJID,即包含资源部分:/resource),它应该返回是否支持 OOB 传输的信息。

【讨论】:

以上是关于如何使用 jabber net 在 c# Windows 应用程序中实现文件传输的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 agsXMPP c# 创建 jabber 帐户?

身份验证 c# 的 Jabber 客户端问题

Jabber-net 注册新用户

jabber-net onAuthenticated 没有被调用

如何使用 Jabber-net 库实现 XEP-0012

如何使用 jabber-net 获取消息历史记录(消息归档)