【问题标题】:How to uses Smack API UserSearchManager with local server?如何在本地服务器上使用 Smack API UserSearchManager?
【发布时间】:2011-08-22 15:38:34
【问题描述】:

这可能看起来是一个非常基本的问题,但我在使用此代码访问 OpenFire 搜索功能时遇到问题:

    try {

        UserSearchManager search = new UserSearchManager(connection.getConnection());
        Form searchForm = search.getSearchForm("search." + server);
        ...

    } catch (Exception e) {...}

这里的服务器是一个字符串,其值类似于“192.168.242.132”,代码从这一行得到错误:Form searchForm = search.getSearchForm("search." + server);

基本上,服务器已启动并正在运行,因为我可以创建帐户和登录/注销。

我认为问题出在“服务器”字符串值上。有人遇到过这种问题吗?

编辑:我已经在 /etc/hosts 中添加了将 IP 地址解析为 myelastix-local.com 并且仍然遇到同样的问题,它可以访问 create / login api 但搜索仍然不起作用。我是否也必须修改 openfire 服务器设置?

【问题讨论】:

    标签: xmpp smack openfire


    【解决方案1】:

    您确定可以使用 IP 呼叫getSearchForm() 吗?尝试提供组件ID,通常类似于"search.jabberserver.tld"

    【讨论】:

    • 在 hosts 文件中添加一个条目在这里无济于事。不涉及反向 DNS 查找。看一下源代码:getSearchFrom() 中的字符串直接写入该节。 只需将字符串设置为“myelastix-local.com”。
    • 感谢您的信息,但我已经在几个小时前解决了这个问题。
    • @xybrek 那么请与我们分享解决方案 :)
    • 请看我的回复帖。
    【解决方案2】:

    这就是我所做的:

    Form searchForm = search.getSearchForm("search." + connection.getServiceName());
    

    connection 是 XMPPConnection。

    【讨论】:

    • 参考部分:"search." + connection.getServiceName(),我在哪里可以找到或配置我的 ejabberd 设置的相关字符串?
    猜你喜欢
    • 2018-07-18
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多