Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.someapp.networking;
- import java.util.Collection;
- import org.jivesoftware.smack.Chat;
- import org.jivesoftware.smack.ChatManager;
- import org.jivesoftware.smack.ConnectionConfiguration;
- import org.jivesoftware.smack.ConnectionConfiguration.SecurityMode;
- import org.jivesoftware.smack.filter.MessageTypeFilter;
- import org.jivesoftware.smack.filter.PacketFilter;
- import org.jivesoftware.smack.packet.Message;
- import org.jivesoftware.smack.packet.Packet;
- import org.jivesoftware.smack.util.StringUtils;
- import org.jivesoftware.smack.MessageListener;
- import org.jivesoftware.smack.PacketListener;
- import org.jivesoftware.smack.Roster;
- import org.jivesoftware.smack.RosterEntry;
- import org.jivesoftware.smack.SASLAuthentication;
- import org.jivesoftware.smack.SmackConfiguration;
- import org.jivesoftware.smack.XMPPConnection;
- import org.jivesoftware.smack.XMPPException;
- import android.util.Log;
- public class XMPPMessenger
- {
- private final String XMPP_SERVER = "jabber.ru";
- private final String USERNAME = "lets_test";
- private final String PASSWORD = "lets_test";
- /* private final String XMPP_SERVER = "talk.google.com";
- private final String USERNAME = "letstest49@gmail.com";
- private final String PASSWORD = "lets_test";*/
- /* private final String XMPP_SERVER = "localhost";
- private final String USERNAME = "admin@localhost";
- private final String PASSWORD = "12345";*/
- private static final int PACKET_REPLY_TIMEOUT = 1500; // millis
- private static final int PORT = 5222;
- private XMPPConnection connection;
- private ConnectionConfiguration config;
- private ChatManager chatManager;
- private MessageListener messageListener = null;
- public boolean init()
- {
- SmackConfiguration.setPacketReplyTimeout(PACKET_REPLY_TIMEOUT);
- config = new ConnectionConfiguration(XMPP_SERVER, PORT);
- config.setSASLAuthenticationEnabled(false);
- config.setSecurityMode(SecurityMode.disabled);
- connection = new XMPPConnection(config);
- Log.i("XMPP", connection.getHost().concat(" ".concat(Integer.toString(connection.getPort()))));
- try
- {
- connection.connect();
- }
- catch (XMPPException e)
- {
- e.printStackTrace();
- setConnection(null);
- return false;
- }
- return true;
- }
- public boolean login()
- {
- if (connection != null && connection.isConnected())
- {
- Log.i("XMPP", connection.getHost());
- try
- {
- connection.login(USERNAME, PASSWORD);
- }
- catch (XMPPException e)
- {
- e.printStackTrace();
- Log.e("XMPP", connection.getHost().concat(" ".concat(Integer.toString(connection.getPort()))));
- Log.e("XMPP", Boolean.toString(connection.isConnected()));
- setConnection(null);
- return false;
- }
- return true;
- }
- Log.e("XMPP", connection.getHost().concat(" ".concat(Integer.toString(connection.getPort()))));
- Log.e("XMPP", Boolean.toString(connection.isConnected()));
- return false;
- }
- public void destroy()
- {
- if (connection != null && connection.isConnected())
- {
- connection.disconnect();
- }
- }
- public boolean sendMessage(String buddyJID, String message)
- {
- Chat chat = chatManager.createChat(buddyJID, messageListener);
- try
- {
- chat.sendMessage(message);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- return false;
- }
- return true;
- }
- public boolean createEntry(String user, String name)
- {
- Roster roster = connection.getRoster();
- try
- {
- roster.createEntry(user, name, null);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- return false;
- }
- return true;
- }
- public Collection<RosterEntry> getRosterEntries()
- {
- Roster roster = connection.getRoster();
- return roster.getEntries();
- }
- public void setMessageListener(MessageListener messageListener)
- {
- this.messageListener = messageListener;
- }
- public void setConnection(XMPPConnection connection)
- {
- this.connection = connection;
- if (connection != null)
- {
- PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
- connection.addPacketListener(new PacketListenerImpl(), filter);
- }
- }
- private class PacketListenerImpl implements PacketListener
- {
- @Override
- public void processPacket(Packet packet)
- {
- Message message = (Message) packet;
- if (message.getBody() != null)
- { // TODO: Добавить проверку на пустую строку
- String from = StringUtils.parseBareAddress(message.getFrom());
- String body = message.getBody();
- Log.i("XMPP", from + ": " + body);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement