【问题标题】:pyxmpp2 connect to openfire cannot resolve NXDOMAINpyxmpp2 连接到 openfire 无法解析 NXDOMAIN
【发布时间】:2013-03-22 02:41:49
【问题描述】:

我在我的 Ubuntu 机器上安装了 pyxmpp2 https://github.com/Jajcus/pyxmpp2。我还为它安装了 Openfire 3.8.1。我想使用 pyxmpp2 在同一台机器上连接到我的 Openfire 服务器。

在我的 Openfire 控制面板的服务器 -> 服务器管理器 -> 服务器信息中,面板中服务器属性中显示的服务器名称为 mymachine,环境部分中显示的主机名称为 MyMachine。

我尝试了以下代码:

import logging
from pyxmpp2.jid import JID
from pyxmpp2.client import Client
logging.basicConfig()
client = Client(JID("admin@mymachine"),[])
client.connect()

并收到以下消息:

警告:pyxmpp2.resolver:无法解析“_xmpp-client._tcp.mymachine”:NXDOMAIN

我错过了配置吗?

【问题讨论】:

    标签: python xmpp pyxmpp2


    【解决方案1】:

    您的域似乎没有 DNS SRV 记录,因此 pyxmpp2 无法解析它们。查看http://wiki.xmpp.org/web/SRV_Records 了解如何创建它们。

    基本上,DNS SRV 记录的格式为

    _service._proto.name TTL 类 SRV 优先权重端口目标

    可能看起来像这个例子

    _xmpp-client._tcp.example.net. 86400 IN SRV 5 0 5222 example.net.
    

    也许 pyxmpp2 还提供了一种直接指定用于 XMPP 服务的主机的方法。这将避免 DNS SRV 查找。

    【讨论】:

    • XMPP 协议不需要 DNS SRV 记录,但我们鼓励使用。您的 JID“admin@mymachine”(因此,mymachine)中的服务器部分必须为 python 库解析。尝试“nslookup mymachine”或“dig mymachine”进行故障排除。使用与代码中完全相同的服务器名称。
    • 谢谢。我已阅读链接http://wiki.xmpp.org/web/SRV_Records,但我不知道如何创建 SRV 记录。你能给我更详细的指导吗?我需要安装“绑定”吗?
    【解决方案2】:

    可能正在使用 ipv6,您可以使用 u"ipv4": True 强制 ipv4 并指定服务器 u"server": "chat.facebook.com"

    handler = MyHandler(JID(target_jid), message)
    settings = XMPPSettings({
                                u"ipv4": True,
                                u"server": "chat.facebook.com",
                                u"password": your_password,
                                u"starttls": True,
                                u"tls_verify_peer": False,
                            })
    client = Client(JID(your_jid), [handler], settings)
    client.connect()
    client.run()
    

    完整代码位于pyxmpp2示例文件夹send_message_client.py

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 2018-08-31
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多