【问题标题】:How to use smack with Openfire如何在 Openfire 中使用 smack
【发布时间】:2011-08-23 03:48:42
【问题描述】:

嗨 我正计划开发一个可以连接到 gtalk facebook 等的聊天客户端......我决定使用 smack API 和 openfire..

但我几乎不需要关于如何将它与 openfire 服务器一起使用的指导..

openfire 是否提供了一个基本的用户界面,例如登录框聊天窗口等...

我需要知道如何通过 openfire 插入或使用 smack

谢谢:)

【问题讨论】:

标签: java openfire smack google-talk facebook-chat


【解决方案1】:

我决定将 smack API 与 openfire 一起使用。 但我几乎不需要指导如何 将它与 openfire 服务器一起使用..

Smack API Getting Started 呢?

openfire 是否提供了一个基本的 登录框聊天窗口等 UI...

OpenFire 只是服务器。要真正聊天,您需要一些 Jabber/XMPP 客户端。您可以使用Spark 进行测试。

【讨论】:

  • @Tim-它没有告诉我应该如何使用 openfire...比如我应该插入 smack 还是有不同的步骤
  • 当然,您按照此处所述设置服务器:igniterealtime.org/builds/openfire/docs/latest/documentation/…。此后,您可以连接某些客户端或 smack API。
  • @Tim 我已经设置了 openfire...我想问如何将它与 smack API 连接起来??
  • 你开始了吗?发布一些源代码以及你得到的异常......
  • 我想你还没有完全理解。您需要一些了解 XMPP 协议的服务器。在你的情况下是 OpenFire、GTalk 或其他东西。当客户端连接时,它会按照协议中的描述发送 XMPP 消息,请参阅 Wikipedia:en.wikipedia.org/wiki/…。到目前为止一切顺利,要实现客户端,您可以使用 smack API。使用此 API,您可以使用 Java 构造和发送上述 XMPP 消息。简而言之:Smack API 不是 OpenFire 插件,也不需要在服务器上。你只是用它来构建一个客户端。
【解决方案2】:

配置 openfire 然后参考documentation provided by Smack。它有易于理解的示例。仅供参考,openfire 在 gtalk 上运行良好,但在 facebook 上运行速度很慢。


示例代码:-

ConnectionConfiguration config = new ConnectionConfiguration(host, 5222);
XMPPConnection connection = new XMPPConnection(config);
connection.connect();
connection.login(user_name, password);

这里的host是配置openfire的ip/域名。

【讨论】:

  • @Harry-我已经阅读了文档,但我没有看到任何关于如何使用 smack 和 openfire...我已经配置了 openfire...
  • @Kuber:只是简单地使用 opefire 和 smack。不需要额外的 jar 文件。但是要使用 gtalk/facebook,您需要 openfire 中的插件。
  • 那么我在哪里编码呢??在 eclipse..我应该在 eclipse 中配置 openfire 吗??
  • @Kuber:不需要在eclipse中配置openfire。下载 SMACK 罐子。然后只需在代码上方创建一个 java 文件复制/粘贴。替换用户名/主机/密码。运行文件。
  • 那么 openfire 是如何理解的??我的意思是我没有看到任何设置或配置。那么 openfire 是如何知道的??
【解决方案3】:

在 JSP/Java 中,导入 smack.jar

<%@ page import="org.jivesoftware.smack.*;" %>

将 smack.jar 放入

tomcat/lib 

或 你的webapp/WEB-INF/lib

【讨论】:

    【解决方案4】:

    这是一个示例,有助于在 gtalk 上设置状态消息。

    import org.jivesoftware.smack.ConnectionConfiguration;
    import org.jivesoftware.smack.XMPPConnection;
    import org.jivesoftware.smack.packet.Presence;
    
    public class SmackToGtalk {
    public static void main(String[] args) 
    {
        ConnectionConfiguration config = new ConnectionConfiguration(
                "talk.google.com", 5222, "google.com");
        XMPPConnection connection = new XMPPConnection(config);
        Presence presence;
        String status;
    
        try {
            connection.connect();
            connection.login("mail_id@gmail.com", "password");
            status = "DND";
    
            presence = new Presence(Presence.Type.available, status, 24,
                    Presence.Mode.available);
            while (true) {
                status = set(status);
                presence.setStatus(status);
                connection.sendPacket(presence);
                Thread.sleep(1000);
            }
    
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            connection.disconnect();
        }
    }
    
    private static String set(String input) {
        return input.substring(1) + input.charAt(0);
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2010-12-05
      • 2015-08-20
      • 2014-02-04
      • 1970-01-01
      相关资源
      最近更新 更多