欢迎来到天天文库
浏览记录
ID:25178404
大小:263.22 KB
页数:14页
时间:2018-11-17
《openfire入门ppt》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、XMPP介绍XMPP介绍它就是一个发送接收处理消息的协议,但是这个协议发送的消息,既不是二进制的东东也不是字符串,而是XML。XMPP主要显著的优点主要有以下几个方面:1、 分布式 任何人都可以运行自己的XMPP服务器,它没有主服务器2、 安全性很高。使用SASL及TLS等技术的可靠安全性3、 开发性 它是开源的,易于进行学习和了解4、 跨平台 毋庸置疑,使用的XML进行传输的。扩展:1、XMAPP详细介绍:http://www.cnblogs.com/hanyonglu/archive/2012/03/04/2378956.html2、服务器消息推送机制:http://
2、www.iteye.com/topic/1117043IMInstantMessenger,及时通信软件,就是大家使用的QQ、MSNMessenger和Gtalk等等。其中Gtalk就是基于XMPP协议的一个实现,其他的则不是。当前IM几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP协议是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作,提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件,不但让你可以边游戏边聊天,也可以开发出适合游戏本身的IM应用,比如说一些游戏关键场景
3、提醒功能,团队语音交流等等都可以基于IM来实现。XMPPIM包括服务器端——Openfire,客户端——Spark,XMPP传输协议的实现——Smack(记住,XMPP是一个协议,协议是需要实现的,Smack起到的就是这样的一个作用)SparkSpark提供了客户端一个基本的实现,并提出了一个很好的插件架构,这对于开发者来说不能不说是一个福音。我强烈建议基于插件方式来实现你新增加的功能,而不是去改它的源代码,这样有利于你项目架构,把原始项目的影响降到最低。OpenfireOpenfire是基于XMPP协议的IM的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来
4、发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的。Openfire也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供插件的扩展,像Spark一样,同样强烈建议使用插件扩展的方式来增加新的功能,而不是修改人家的源代码。SmackSmack是一个XMPP协议的Java实现,提供一套可扩展的API,不过有些时候,你还是不得不使用自己定制发送的XML文件内容的方式来实现自己的功能三者之间的关系client端和server端都可以通过插件的方式来进行扩展,smack是二者传递数据的媒介。Smack—init建立连接privateCo
5、nnectionconnection;privateConnectionConfigurationconfig;/**openfire服务器address*/privatefinalstaticStringserver="127.0.0.1";@Beforepublicvoidinit(){config=newConnectionConfiguration(server,5222);connection=newXMPPConnection(config);/**建立连接*/connection.connect();}catch(XMPPExceptione){e.printS
6、tackTrace();}Smack—init关闭连接@Afterpublicvoiddestory(){if(connection!=null){connection.disconnect();connection=null;}}}Smack—获取角色publicstaticRostergetRoster(Connectionconnection,Stringusername,Stringpassword){try{/**用户登陆,用户名、密码*/connection.login(username,password);}catch(XMPPExceptione){e.pri
7、ntStackTrace();}/**所有用户组*/Rosterroster=connection.getRoster();returnroster;}Smack—创建用户/***创建账户**@paramargs*/publicstaticvoidcreateUser(Connectionconnection,Stringusername,Stringpassword){AccountManageraccountManager=connection.getAccountManager();try{acc
此文档下载收益归作者所有