xmpp im etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
xmpp im etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

10 Aralık 2015 Perşembe

Java uygulamaları için Smack ile XMPP IM - Anlık Mesajlaşma Altyapısı

Java uygulamaları için Smack ile XMPP IM - Anlık Mesajlaşma Altyapısı

Merhaba arkadaşlar.


Smack ile yapmış olduğum uygulama kodları aşağıdadır.



XmppManager classımız

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

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.MessageListener;
import org.jivesoftware.smack.Roster;
import org.jivesoftware.smack.SmackConfiguration;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Message;


public class XmppManager {
   private static final int packetReplyTimeout = 500; // millis
       private String server;
       private int port;
       private ConnectionConfiguration config;
       private XMPPConnection connection;
       private ChatManager chatManager;
       private MessageListener messageListener;

       public XmppManager(String server, int port) {
           this.server = server;
           this.port = port;
       }

       public void init() throws XMPPException {

               System.out.println(String.format("Initializing connection to server %1$s port %2$d", server, port));
               SmackConfiguration.setPacketReplyTimeout(packetReplyTimeout);
               config = new ConnectionConfiguration(server, port);
               config.setSASLAuthenticationEnabled(true);
               config.setSecurityMode(SecurityMode.enabled);
               connection = new XMPPConnection(config);
               connection.connect();

               System.out.println("Connected: " + connection.isConnected());
               chatManager = connection.getChatManager();
               messageListener = new MyMessageListener();
           }

       public void performLogin(String username, String password) throws XMPPException {

               if (connection!=null && connection.isConnected()) {
                   connection.login(username, password);
               }
           }

       public void destroy() {

               if (connection!=null && connection.isConnected()) {
               connection.disconnect();
               }
           }
       
       public void sendMessage(String message, String buddyJID) throws XMPPException {

               System.out.println(String.format("Sending mesage '%1$s' to user %2$s", message, buddyJID));
               Chat chat = chatManager.createChat(buddyJID, messageListener);
               chat.sendMessage(message);

           }
       
       public void createEntry(String user, String name) throws Exception {
               System.out.println(String.format("Creating entry for buddy '%1$s' with name %2$s", user, name));
               Roster roster = connection.getRoster();
               roster.createEntry(user, name, null);

       }


       class MyMessageListener implements MessageListener {

               @Override               public void processMessage(Chat chat, Message message) {
                  
                  String from = message.getFrom();
                   String body = message.getBody();
                   System.out.println(String.format("Received message '%1$s' from %2$s", body, from));

               }

           }
XmppTest classımız
public class XmppTest {

   public static void main(String[] args) throws Exception {

      
      String username = "kullanıcı adınız";
      String password = "şifreniz";

      XmppManager xmppManager = new XmppManager("openfiresunucu ipsi", client port);

      xmppManager.init();
      xmppManager.performLogin(username, password);
      xmppManager.setStatus(true, "Merhaba");
        String buddyJID = "mesaj gööndereceğiniz kişinin JID 'si";
        String buddyName = "mesaj gööndereceğiniz kişinin adı";
        xmppManager.createEntry(buddyJID, buddyName);
        xmppManager.sendMessage("Göndereceğiniz mesaj buraya", "kullanıcıkimliği@sunucu adı(admin@openfire)");
              
        boolean isRunning = true;
        while (isRunning) {
         Thread.sleep(50);
      }
      xmppManager.destroy();

   }
}