OpenFire入门PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
String username, String password){ try { /** 用户登陆,用户名、密码 */ connection.login(username,password); } catch (XMPPException e) { e.printStaBiblioteka BaidukTrace(); } /** 所有用户组 */ Roster roster = connection.getRoster(); return roster; }
Smack—建立会话
ChatManager chatManager = connection.getChatManager(); chatManager.addChatListener(new MyChatManagerListener()); /** 为指定用户创建一个chat,MyMessageListeners用于监听对方发过来的消息 */ Chat chat = chatManager.createChat("j1888888888810008@ailksaas.com", new MyMessageListener()); try { /** 发送消息 */ chat.sendMessage("h!~ guanxf,my name is franky,i love you……"); /** 用message对象发送消息 */ Message message = new Message(); message.setBody("message,hello "); message.setProperty("color", "red"); chat.sendMessage(message); } catch (XMPPException e) { e.printStackTrace(); }
XMPP 介绍
XMPP 介绍 它就是一个发送接收处理消息的协议,但是这个协议发送的消息,既不是 二进制的东东也不是字符串,而是XML。 XMPP主要显著的优点主要有以下几个方面: 1、 分布式 任何人都可以运行自己的XMPP服务器,它没有主服务器 2、 安全性很高。使用SASL及TLS等技术的可靠安全性 3、 开发性 它是开源的,易于进行学习和了解 4、 跨平台 毋庸置疑,使用的XML进行传输的。 扩展: 1、XMAPP详细介绍: http://www.cnblogs.com/hanyonglu/archive/2012/03/04/2378956.html 2、服务器消息推送机制: http://www.iteye.com/topic/1117043
/** 设置状态 */ try { // connection.login("franky", "123456"); connection.login("j1804030765410008", "123456"); } catch (XMPPException e) { e.printStackTrace(); } /** 设置状态 */ Presence presence = new Presence(Presence.Type.available); presence.setStatus("Q我吧"); connection.sendPacket(presence);
Smack
Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时 候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的 功能
三者之间的关系
client 端和server端都可以通过插件的方式来进行扩展,smack是二者传递数据的媒介。
Smack — init 建立连接 private Connection connection;
Openfire
Openfire 是基于XMPP 协议的IM 的服务器端的一个实现,虽然当两个用户 连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服 务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的。 Openfire 也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供 插件的扩展,像Spark 一样,同样强烈建议使用插件扩展的方式来增加新 的功能,而不是修改人家的源代码。
没了
/** * 创建账户 * * @param args */ public static void createUser(Connection connection, String username, String password) { AccountManager accountManager = connection.getAccountManager(); try { accountManager.createAccount(username, password); } catch (XMPPException e) { e.printStackTrace(); } }
XMPP IM
包括服务器端——Openfire,客户端——Spark,XMPP 传输协议的实现— —Smack(记住,XMPP是一个协议,协议是需要实现的,Smack起到的就 是这样的一个作用)
Spark
Spark 提供了客户端一个基本的实现,并提出了一个很好的插件架构,这 对于开发者来说不能不说是一个福音。我强烈建议基于插件方式来实现你 新增加的功能,而不是去改它的源代码,这样有利于你项目架构,把原始 项目的影响降到最低。
private ConnectionConfiguration config; /** openfire服务器address */ private final static String server = "127.0.0.1"; @Before public void init() { config = new ConnectionConfiguration(server, 5222); connection = new XMPPConnection(config); /** 建立连接 */ connection.connect(); } catch (XMPPException e) { e.printStackTrace(); }
Smack—创建用户
Smack — 创建用户到分组 public static void createUserToGroup(Roster roster,String
groupName,Connection connection, String jid, String nickName,String username,String password) { AccountManager accountManager = connection.getAccountManager(); try { accountManager.createAccount(username,username.length()>0?password:Sma ckGlobalUtils.PASSWORD); } catch (XMPPException e) { e.printStackTrace(); } try { String[] groups = new String[] { groupName}; roster.createEntry(jid, nickName, groups); } catch (Exception e) { e.printStackTrace(); } }
IM
Instant Messenger,及时通信软件,就是大家使用的QQ、MSN Messenger 和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。 当前IM 几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些 企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP 协议 是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作, 提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件, 不但让你可以边游戏边聊天,也可以开发出适合游戏本身的IM 应用,比如 说一些游戏关键场景提醒功能,团队语音交流等等都可以基于IM来实现。
@After public void destory() { if (connection != null) { connection.disconnect(); connection = null; } } }
Smack—init关闭连接
Smack — 获取角色 public static Roster getRoster(Connection connection,
Smack—建立会话
ChatManager chatManager = connection.getChatManager(); chatManager.addChatListener(new MyChatManagerListener()); /** 为指定用户创建一个chat,MyMessageListeners用于监听对方发过来的消息 */ Chat chat = chatManager.createChat("j1888888888810008@ailksaas.com", new MyMessageListener()); try { /** 发送消息 */ chat.sendMessage("h!~ guanxf,my name is franky,i love you……"); /** 用message对象发送消息 */ Message message = new Message(); message.setBody("message,hello "); message.setProperty("color", "red"); chat.sendMessage(message); } catch (XMPPException e) { e.printStackTrace(); }
XMPP 介绍
XMPP 介绍 它就是一个发送接收处理消息的协议,但是这个协议发送的消息,既不是 二进制的东东也不是字符串,而是XML。 XMPP主要显著的优点主要有以下几个方面: 1、 分布式 任何人都可以运行自己的XMPP服务器,它没有主服务器 2、 安全性很高。使用SASL及TLS等技术的可靠安全性 3、 开发性 它是开源的,易于进行学习和了解 4、 跨平台 毋庸置疑,使用的XML进行传输的。 扩展: 1、XMAPP详细介绍: http://www.cnblogs.com/hanyonglu/archive/2012/03/04/2378956.html 2、服务器消息推送机制: http://www.iteye.com/topic/1117043
/** 设置状态 */ try { // connection.login("franky", "123456"); connection.login("j1804030765410008", "123456"); } catch (XMPPException e) { e.printStackTrace(); } /** 设置状态 */ Presence presence = new Presence(Presence.Type.available); presence.setStatus("Q我吧"); connection.sendPacket(presence);
Smack
Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时 候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的 功能
三者之间的关系
client 端和server端都可以通过插件的方式来进行扩展,smack是二者传递数据的媒介。
Smack — init 建立连接 private Connection connection;
Openfire
Openfire 是基于XMPP 协议的IM 的服务器端的一个实现,虽然当两个用户 连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服 务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的。 Openfire 也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供 插件的扩展,像Spark 一样,同样强烈建议使用插件扩展的方式来增加新 的功能,而不是修改人家的源代码。
没了
/** * 创建账户 * * @param args */ public static void createUser(Connection connection, String username, String password) { AccountManager accountManager = connection.getAccountManager(); try { accountManager.createAccount(username, password); } catch (XMPPException e) { e.printStackTrace(); } }
XMPP IM
包括服务器端——Openfire,客户端——Spark,XMPP 传输协议的实现— —Smack(记住,XMPP是一个协议,协议是需要实现的,Smack起到的就 是这样的一个作用)
Spark
Spark 提供了客户端一个基本的实现,并提出了一个很好的插件架构,这 对于开发者来说不能不说是一个福音。我强烈建议基于插件方式来实现你 新增加的功能,而不是去改它的源代码,这样有利于你项目架构,把原始 项目的影响降到最低。
private ConnectionConfiguration config; /** openfire服务器address */ private final static String server = "127.0.0.1"; @Before public void init() { config = new ConnectionConfiguration(server, 5222); connection = new XMPPConnection(config); /** 建立连接 */ connection.connect(); } catch (XMPPException e) { e.printStackTrace(); }
Smack—创建用户
Smack — 创建用户到分组 public static void createUserToGroup(Roster roster,String
groupName,Connection connection, String jid, String nickName,String username,String password) { AccountManager accountManager = connection.getAccountManager(); try { accountManager.createAccount(username,username.length()>0?password:Sma ckGlobalUtils.PASSWORD); } catch (XMPPException e) { e.printStackTrace(); } try { String[] groups = new String[] { groupName}; roster.createEntry(jid, nickName, groups); } catch (Exception e) { e.printStackTrace(); } }
IM
Instant Messenger,及时通信软件,就是大家使用的QQ、MSN Messenger 和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。 当前IM 几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些 企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP 协议 是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作, 提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件, 不但让你可以边游戏边聊天,也可以开发出适合游戏本身的IM 应用,比如 说一些游戏关键场景提醒功能,团队语音交流等等都可以基于IM来实现。
@After public void destory() { if (connection != null) { connection.disconnect(); connection = null; } } }
Smack—init关闭连接
Smack — 获取角色 public static Roster getRoster(Connection connection,