简述
公司最近做一个IM聊天软件,不要问我为什么用这么古老的东西,撒碧领导、撒碧领导、撒碧领导,重要的事情说三遍!
Xmpp是一种基于标准通用标记言语的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的扩展性。
经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。
而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一配好系统添加功能。
资源文件
- smack-android-4.1.9.jar
- smack-android-extensions-4.1.9.jar
- smack-core-4.1.9.jar
- smack-experimental-4.1.9.jar
- smack-extensions-4.1.9.jar
- smack-im-4.1.9.jar
- smack-jingle-old-4.1.9.jar
- smack-sasl-provided-4.1.9.jar
- smack-tcp-4.1.9.jar
开始我们的正菜
<1> 打开连接
public AbstractXMPPConnection connection;
public String XMPP_RESOURCE ="android";
public String XMPP_HOST ="114.114.114.114";
public boolean openConnection(){
try{
if(null == connection || !connection.isAuthenticated()){
SmackConfiguration.DEBUG = true;
XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
//设置端名称
config.setResource(XMPP_RESOURCE)
//服务器IP地址
config.setHost(XMPP_HOST)
//服务器端口
config.setPort(Constant.XMPP_PORT)
//设置登录状态
config.setSendPresence(false)
//服务器名称
config.setServiceName(Constant.XMPP_HOST)
//是否开启安全模式
config.setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled)
//是否开启压缩
config.setCompressionEnabled(false)
//开启调试模式
config.setDebuggerEnabled(true).build();
//需要经过同意才可以添加好友 manual 添加直接通过accept_all
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);
connection = new XMPPTCPConnection(config);
//认证相关内容---需要认证添加,否则注销
SASLMechanism mechanism = new SASLDigestMD5Mechanism();
SASLAuthentication.regusterSASLMechanism(mechanism);
SASLAuthentication.blacklistSASLMechanism("SCRAM-SHA-1");
SASLAuthentication.blacklistSASLMechanism("DIGEST-MD5");
connection.connect();
}
} catch (Exception e){
e.printStackTrace();
connection = null;
}
}
<2> 登陆
connection.login("账号","密码");
if(connection.isAuthenticated()){
//登陆成功
}
<3> 注册
public boolean register(String 账号,String 密码){
try{
AccountManager.getInstance(connection).createAccount(账户,密码);
}catch(Exception e){
e.printStackTrace();
return false; //注册失败
}
return true; //注册成功
}
结束语:
今天白天还在赶项目,晚上感觉很疲劳,想休息一下。再看看爱情保卫看到很多情侣因为房子车子再努力奋斗,而没有时间关系对方,导致分手的比比皆是。
所以激发一个IT男的热血,奋斗吧!少年!
网友评论