开源一个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功能了,三年前写的希望没过时哦:)

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

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

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. 开源一个JAVA开发的分类信息源码

    最近有空用JAVA折腾的一个分类广告源码. 开发放言:JAVA 框架:SpringMVC Hibernate 分布式用重量级EJB 3.0 实现,可以分布JBOSS部署. 前端用 JSP JQUERY ...

  3. Python 爬虫五 进阶案例-web微信登陆与消息发送

    首先回顾下网页微信登陆的一般流程 1.打开浏览器输入网址 2.使用手机微信扫码登陆 3.进入用户界面 1.打开浏览器输入网址 首先打开浏览器输入web微信网址,并进行监控: https://wx.qq ...

  4. java操作rabbitmq实现简单的消息发送(socket编程的升级)

    准备: 1.下载rabbitmq并搭建环境(和python那篇一样:http://www.cnblogs.com/g177w/p/8176797.html) 2.下载支持的jar包(http://re ...

  5. 【Java Web开发学习】Spring消息-ActiveMQ发送消息

    ActiveMQ发送消息 转载:http://www.cnblogs.com/yangchongxing/p/9042401.html Java消息服务(Java Message Service, J ...

  6. java开源即时通讯软件服务端openfire源码构建

    java开源即时通讯软件服务端openfire源码构建 本文使用最新的openfire主干代码为例,讲解了如何搭建一个openfire开源开发环境,正在实现自己写java聊天软件: 编译环境搭建 调试 ...

  7. 【通信】Netty JBOSS提供的一个java开源框架

    Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序dsf. 也就是说,Netty 是一个基 ...

  8. Jib构建你的第一个java镜像

    jib Official:GoogleContainerTools/jib 本文示例完整demo github地址 github.com/moxingwang/- 想要了解并且使用jib,首先你得知道 ...

  9. 带你上手阿里开源的 Java 诊断利器:Arthas

    本文适合有 Java 基础知识的人群. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款阿里开源的 Java 诊断利器 Art ...

随机推荐

  1. 用OLEDB读取EXCEL时,单元格内容长度超过255被截断

    https://support.microsoft.com/zh-cn/help/189897/data-truncated-to-255-characters-with-excel-odbc-dri ...

  2. POJ 1739 Tony's Tour (DP)

    题意:从左下角到右下角有多少种走法. 析:特殊处理左下角和右下角即可. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000 ...

  3. UVa 1612 Guess (贪心+题意)

    题意:有 n 位选手参加编程比赛.比赛有3道题目,每个选手的每道题目都有一个评测之前的预得分(这个分数和选手提交程序的时间相关,提交的越早,预得分越大). 接下来 是系统评测.如果某道题未通过测试,则 ...

  4. LDA详解

    PART 1 这个性质被叫做共轭性.共轭先验使得后验概率分布的函数形式与先验概率相同,因此使得贝叶斯分析得到了极⼤的简化.   V:文档集中不重复的词汇的数目 语料库共有m篇文档,: 对于文档,由个词 ...

  5. MFC中的一般经验之谈4

    MFC中的窗口控件,都是从CWnd类中继承的.MFC以及ResourceEditor支持的所有控件称为标准控件. 在对话框资源文件夹下,然后邮件新建添加新对话框,新建对话框后要在资源视图中的对话框文件 ...

  6. ERROR Function not available to this responsibility.Change responsibilities or contact your System Administrator.

    APPLIES TO: Navigation:  Help > Diagnostics > Custom Code > Personalize  or  Help > Diag ...

  7. .NET控件名称缩写一览表

    转载自如下链接: https://www.cnblogs.com/xpvincent/p/9334851.html 字体实在是太小了,我看着好闹心,就复制过来自己放大下,谢谢. 标准控件1 btn B ...

  8. 201621123023《Java程序设计》第14周学习总结

    一.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 由于我的系 ...

  9. 红与黑(DFS)

    描述有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动.请写一个程序,计算你总共能够到达多少块黑色的瓷砖.输入包括多个数据集合.每个数据集 ...

  10. Hibernate 框架学习

    什么是hibernate框架? 1.它是应用在javaee 三层架构中的dao层 它的底层就是JDBC 它对JDBC进行了封装,好处就是不用写jdbc的代码,和sql语句,它是一个开源的轻量级框架,现 ...