基于Smack4.1.4+ Openfire3.10.2下学习开发IM(一)实现用户登录、修改密码和注销等
2015-10-29 00:57
921 查看
以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后台服务器代码就比较复杂,对于我这新手来讲就比较难了。后来在网上看到用openfire做服务器,利用强大的Smack API库来实现IM聊天就简单多了。
网上也有很多关于这方面的资料,我就在这里把网上的资料和自己的理解总结一下和大家一起交流学习。
需要用到以下几个工具:
Openfire 最新版本(openfire 3.10.2)
下载地址:http://www.igniterealtime.org/downloads/index.jsp
安装配置可参考:http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html
Smack 最新版本(Smack4.1.4)
下载地址:http://www.igniterealtime.org/downloads/index.jsp
需要安装的安装好,需要下载的下载好(这里就不多作介绍)。创建项目工程,导入ASmack jar包,OK,下面就一起去学习怎么实现 用户注册、登录、修改密码和注销等一些功能!
首先第一、与服务器建立好连接
关键代码:192.169.20.246为服务器IP,5222为服务器端口号
package com.openfire.util;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;
public class SmackConnectionUtil {
private static XMPPTCPConnection connection =null;
//静态工厂方法
public static XMPPTCPConnection getInstance(String serverName, int port) {
if (connection == null) {
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setServiceName(serverName)
.setHost(serverName)
.setPort(port)
.build();
connection = new XMPPTCPConnection(config);
}
return connection;
}
}
第二、实现登录
关键代码: 代码很简单不做太多解释
关键代码:同样很简单
第四:注销
关键代码:很简单吧!
网上也有很多关于这方面的资料,我就在这里把网上的资料和自己的理解总结一下和大家一起交流学习。
需要用到以下几个工具:
Openfire 最新版本(openfire 3.10.2)
下载地址:http://www.igniterealtime.org/downloads/index.jsp
安装配置可参考:http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html
Smack 最新版本(Smack4.1.4)
下载地址:http://www.igniterealtime.org/downloads/index.jsp
需要安装的安装好,需要下载的下载好(这里就不多作介绍)。创建项目工程,导入ASmack jar包,OK,下面就一起去学习怎么实现 用户注册、登录、修改密码和注销等一些功能!
首先第一、与服务器建立好连接
关键代码:192.169.20.246为服务器IP,5222为服务器端口号
package com.openfire.util;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;
public class SmackConnectionUtil {
private static XMPPTCPConnection connection =null;
//静态工厂方法
public static XMPPTCPConnection getInstance(String serverName, int port) {
if (connection == null) {
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setServiceName(serverName)
.setHost(serverName)
.setPort(port)
.build();
connection = new XMPPTCPConnection(config);
}
return connection;
}
}
第二、实现登录
关键代码: 代码很简单不做太多解释
package com.openfire.util; import org.jivesoftware.smack.AbstractXMPPConnection; import org.jivesoftware.smack.tcp.XMPPTCPConnection; public class UserUtil { /** * 登录 * * @param connection * xmpp服务器连接 * @param username * 登录帐号 * @param password * 登录密码 * @return */ public static boolean login(AbstractXMPPConnection connection, String username, String password) { try { if (connection == null) return false; connection.connect(); /** 登录 */ connection.login(username, password); return true; } catch (Exception e) { e.printStackTrace(); } return false; } }第三、修改密码
关键代码:同样很简单
/** * 更改密码 * * @param connection * xmpp服务器连接 * @param username * 帐号 * @param password * 旧密码 * @param password * 新密码 * @return */ public static boolean update(AbstractXMPPConnection connection, String username, String password,String newpassword) { try { if (connection == null) return false; connection.connect(); /** 登录 */ connection.login(username, password); /** 用户操作实例对象:AccountManager */ AccountManager manager=AccountManager.getInstance(connection); manager.sensitiveOperationOverInsecureConnection(true); manager.changePassword(newpassword); return true; } catch (Exception e) { e.printStackTrace(); } return false; }
第四:注销
关键代码:很简单吧!
/** * 注销 * * @param connection * xmpp服务器连接 * @param username * 帐号 * @param password * 密码 * @return */ public static boolean deleteAll(AbstractXMPPConnection connection,String username, String password) { try { if (connection == null) return false; connection.connect(); /** 登录 */ connection.login(username, password); /** 用户操作实例对象:AccountManager */ AccountManager manager=AccountManager.getInstance(connection); manager.deleteAccount(); return true; } catch (Exception e) { e.printStackTrace(); } return false; }哦,这么晚了,今天的代码就编写到此。明天进入第二讲开发。
相关文章推荐
- Centos yum安装并启动telnet
- Centos查看端口占用情况和开启端口命令
- Linux test、[]、[[]]总结及性能比较
- 我的linux服务器
- tomcat pipline设计模式
- [置顶] Test Top
- Tomcat学习之Request/Response封装
- nginx实现带参数目录域名重定向二级域名方法
- Nginx正则表达式之匹配操作符详解
- 使用Linux正则表达式灵活搜索文件中的文本
- nginx用cookie控制访问权限实现方法
- nginx中给目录增加密码保护实现程序
- php抓取网站图片并保存的实现方法
- linux shell 编程3 判断当前的是不是目录、 传递参数的个数
- 退出Python的shell
- linux常用定位问题命令
- Linux下可回收删除
- linux创建快捷方式
- Linux 端口号划分
- Linux 配置jdk和tomcat