Как использовать smack с Openfire

Привет, я планирую разработать чат-клиент, который может подключаться к gtalk facebook и т. д. Я решил использовать smack API вместе с openfire.

Но мне нужно небольшое руководство относительно того, как использовать его с сервером openfire.

И предоставляет ли openfire базовый пользовательский интерфейс, такой как окно чата для входа в систему и т. Д.

Мне нужно знать, как подключить или использовать smack с openfire

Спасибо:)


person newbie    schedule 11.05.2011    source источник
comment
Просматривал сеть и наткнулся на эту ссылку, которая может быть полезна: ‹br/›‹br/› Инфраструктура обмена мгновенными сообщениями   -  person EthiopionZA    schedule 19.12.2012


Ответы (4)


Я решил использовать smack API вместе с openfire. Но мне нужно небольшое руководство о том, как использовать его с сервером openfire.

Как насчет Начало работы с Smack API?

И предоставляет ли openfire базовый пользовательский интерфейс, такой как окно чата для входа в систему и т. Д.

OpenFire — это просто сервер. Чтобы по-настоящему общаться, вам понадобится клиент Jabber/XMPP. Вы можете использовать Spark для тестов.

person Tim Büthe    schedule 11.05.2011
comment
@ Тим-Это не говорит, как я должен это делать с openfire ... Например, я должен подключить smack или есть другой шаг - person newbie; 11.05.2011
comment
Конечно, вы настроили сервер, как описано здесь: igniterealtime .org/builds/openfire/docs/latest/documentation/. После этого вы можете подключиться к какому-либо клиенту или smack API. - person Tim Büthe; 11.05.2011
comment
@Tim Я настроил openfire ... Я спрашиваю, как мне подключить его к smack API ?? - person newbie; 11.05.2011
comment
Вы начали? Опубликуйте исходный код вместе с исключением, которое вы получаете... - person Tim Büthe; 11.05.2011
comment
@Tim ... Нет, я имел в виду, должен ли я загружать файлы jar под плагинами в openfire ??? - person newbie; 11.05.2011
comment
Я думаю, вы не все поняли. Вам нужен сервер, который понимает XMPP-протокол. В вашем случае это OpenFire, GTalk или что-то еще. Когда клиент подключается, он отправляет сообщения XMPP, как описано в протоколе, см. Википедию: en.wikipedia.org/ вики/. Пока все хорошо, для реализации клиента можно использовать smack API. С помощью этого API вы используете Java для создания и отправки сообщений XMPP, упомянутых выше. Итак, в двух словах: Smack API не является плагином OpenFire и не нужен на сервере. Вы просто используете его для создания клиента. - person Tim Büthe; 11.05.2011

Настройте openfire, затем обратитесь к документации, предоставленной Smack. Он имеет простые для понимания примеры. К вашему сведению, openfire отлично работает с gtalk, но с facebook очень медленно.


Образец кода:-

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

Здесь host — это IP-адрес/имя домена, на котором настроен openfire.

person Harry Joy    schedule 11.05.2011
comment
@ Гарри, я просмотрел документацию, но нигде не вижу, как использовать smack с openfire ... У меня настроен openfire ... - person newbie; 11.05.2011
comment
@Kuber: просто использовать opefire с привкусом. Дополнительный файл jar не требуется. Но для работы с gtalk/facebook вам потребуются плагины в openfire. - person Harry Joy; 11.05.2011
comment
Итак, где же я код для этого? В eclipse.. я должен настроить openfire в eclipse?? - person newbie; 11.05.2011
comment
@Kuber: нет необходимости настраивать openfire в eclipse. Загрузите банки SMACK. Затем просто создайте java-файл, скопируйте/вставьте код выше. заменить имя пользователя/хост/пароль. Запустите файл. - person Harry Joy; 11.05.2011
comment
Итак, как openfire понимает?? Я имею в виду, что я не вижу никаких настроек или конфигураций. - person newbie; 11.05.2011
comment
@kuber: мы предоставляем IP и порт, на котором работает openfire. - person Harry Joy; 11.05.2011
comment
Привет, скажи мне, что здесь хозяин - person kannappan; 22.06.2011
comment
@Kannappan: хост — это IP-адрес или доменное имя машины, на которой работает openfire. - person Harry Joy; 22.06.2011

Это пример, который поможет настроить статусное сообщение на 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("[email protected]", "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);
}
}
person frewper    schedule 07.08.2012

В JSP/Java импортируйте smack.jar

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

Поместите smack.jar в

tomcat/lib 

или ваше веб-приложение/WEB-INF/lib

person deepakssn    schedule 23.05.2012