【发布时间】:2011-02-20 13:46:07
【问题描述】:
我正在为我的 jabber 远程管理机器人使用 xmpppy 库,但我找不到如何发送/接收文件并将其保存在指定的目录中。文档很差,也没有任何例子,但我真的很想做。任何人都可以展示一些例子或一些关于它的链接吗?或者我应该使用替代的 xmpp 绑定?
【问题讨论】:
标签: python xmpp file-transfer
我正在为我的 jabber 远程管理机器人使用 xmpppy 库,但我找不到如何发送/接收文件并将其保存在指定的目录中。文档很差,也没有任何例子,但我真的很想做。任何人都可以展示一些例子或一些关于它的链接吗?或者我应该使用替代的 xmpp 绑定?
【问题讨论】:
标签: python xmpp file-transfer
有两个 XEP(XMPP 扩展)涵盖文件传输:XEP-0096 http://xmpp.org/extensions/xep-0096.html(称为 SI(流启动)文件传输)和 XEP-0234 http://xmpp.org/extensions/xep-0234.html(Jingle 文件传输)
XEP-0096 是原始的,但我发现它很少在大多数库和大多数客户端中实现(正如您所发现的)。 XEP-0234 更新很多,可以在更现代的客户端中找到,但在较旧的库(如 xmpppy)中没有。即使找到库或其中任何一个的实现,您也将面临的问题是连接的两端也必须实现它们。
在这两者中,我会选择 XEP-0234,因为它涵盖了原版存在的很多问题,并且被认为可以替代它。
就 Python 库而言,没有一个支持它。我看过 xmpppy、headstock、pyxmpp、jabber.py、twisted words 和我最喜欢的 slimxmppp。
【讨论】:
xmpppy中有一个模块xmpp.filetransfer:
该模块包含 IBB 类,它是 JEP-0047 的简单实现。请注意,这只是数据的传输。您必须在之前协商数据传输(最有可能通过 StreamInitiation)。不幸的是,SI 还没有实现。
【讨论】: