开源一个Java Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了

来源:互联网 发布:华泰证券网络培训学院 编辑:程序博客网 时间:2024/06/06 00:39

开源一个Java Class实现Openfire登陆、推出、消息发送

N年前写的,希望对Openfire开发新手有帮助哦

import java.util.*;
import java.io.*;
 
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.Roster;
import org.jivesoftware.smack.RosterEntry;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Message;
 
public class ImApi {//implements MessageListener{
 
    XMPPConnection connection;
 
    public void login(String userName, String password) throws XMPPException
    {
    ConnectionConfiguration config = new ConnectionConfiguration("222.186.191.86",5222, "Work");
    connection = new XMPPConnection(config);
 
    connection.connect();
    connection.login(userName, password);
    }
 
    public void sendMessage(String message, String to) throws XMPPException
    {
    Chat chat = connection.getChatManager().createChat(to, null); //this);
    chat.sendMessage(message);
    }
 
    public void displayBuddyList()
    {
    Roster roster = connection.getRoster();
    Collection<RosterEntry> entries = roster.getEntries();
 
    //System.out.println("\n\n" + entries.size() + " buddy(ies):");
    for(RosterEntry r:entries)
    {
    System.out.println(r.getUser());
    }
    }
 
    public void disconnect()
    {
     connection.disconnect();
    }
 
    public void processMessage(Chat chat, Message message)
    {
    if(message.getType() == Message.Type.chat)
    System.out.println(chat.getParticipant() + " says: " + message.getBody());
    }
 
    public static void main(String args[]) throws XMPPException, IOException
    {
    // declare variables
    ImApi c = new ImApi();
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String msg;
 
 
    // turn on the enhanced debugger
    //XMPPConnection.DEBUG_ENABLED = true;
 
 
    // Enter your login information here
    c.login("a2@dev-pc", "1234");
 
    //c.displayBuddyList();
 
    System.out.println("-----");
 
    System.out.println("Who do you want to talk to? - Type contacts full email address:");
    String talkTo = "a4@dev-pc"; //br.readLine();
 
    System.out.println("-----");
    System.out.println("All messages will be sent to " + talkTo);
    System.out.println("Enter your message in the console:");
    System.out.println("-----\n");
 
    while( !(msg=br.readLine()).equals("bye"))
    {
        c.sendMessage(msg, talkTo);
    }
 
    c.disconnect();
    System.exit(0);
    }
 
}


==============================================================================

编译脚本:

java -cp smackx.jar;smack.jar;. ImApi


打包命令:

jar -cvfm IMA.jar MANIFEST.MF ImApi.class


就这么简单,这么做之后其他系统也可以集成IM功能了,三年前写的希望没过时哦:)

0 0
原创粉丝点击