【问题标题】:How can I transfer a file via XMPP using Python?如何使用 Python 通过 XMPP 传输文件?
【发布时间】:2011-02-20 13:46:07
【问题描述】:

我正在为我的 jabber 远程管理机器人使用 xmpppy 库,但我找不到如何发送/接收文件并将其保存在指定的目录中。文档很差,也没有任何例子,但我真的很想做。任何人都可以展示一些例子或一些关于它的链接吗?或者我应该使用替代的 xmpp 绑定?

【问题讨论】:

    标签: python xmpp file-transfer


    【解决方案1】:

    有两个 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。

    【讨论】:

      【解决方案2】:

      xmpppy中有一个模块xmpp.filetransfer

      该模块包含 IBB 类,它是 JEP-0047 的简单实现。请注意,这只是数据的传输。您必须在之前协商数据传输(最有可能通过 StreamInitiation)。不幸的是,SI 还没有实现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 1970-01-01
        • 2012-05-10
        • 2021-07-01
        • 2012-12-12
        • 1970-01-01
        相关资源
        最近更新 更多