XMPP——Smack[1]连接、登陆及账户操作
来源:互联网 发布:hbo直播软件 编辑:程序博客网 时间:2024/03/29 08:55
临毕业前,应需求,花了三天写了个小的聊天工具,貌似简陋得很….若有机会再完善吧,目前毕业季,处理毕业事宜,还要准备即将的入职。
眼瞅着大学四年就这么结束了,哎。
开始吧,四篇博文简单介绍下基本实现,由于时间有限,功能不是十分丰富,有兴趣的同学自己研究下协议和具体的实现
需求:
基于XMPP的IM工具,需实现和gtalk实现通信,需实现同spark的通信,需架设服务器,实现同自身客户端的通信,传文件,视频聊天
写完未实现需要改进的地方:离线消息,离线文件
一、XMPP
XMPP : The Extensible Messaging and Presence Protocol
中文全称:可扩展通讯和表示协议
简介:
可扩展通讯和表示协议 (XMPP) 可用于服务类实时通讯、表示和需求 - 响应服务中的 XML 数据元流式传输。XMPP 以 Jabber 协议为基础,而 Jabber 是即时通讯中常用的开放式协议。
二、Smack
Smack是一个开源,易于使用的XMPP(jabber)客户端类库。
Smack API, 是一个 Java 的XMPP Client Library,也是由Jive Software开发。 优点:编程简单。 缺点:API并非为大量并发用户设计,每个客户要1个线程,占用资源大,1台机器只能模拟有限(数千个)客户.
smack是一个用 java 写的XMPP客户端代码库, 是 spark 的核心.
二、连接及断开
基本方法
XMPPConnection connection = new XMPPConnection("gmail.com");
connection.connect();
实现的方法
- public static XMPPConnection getConnection(String domain) throws XMPPException {
- XMPPConnection connection = new XMPPConnection(domain);
- connection.connect();
- return connection;
- }
- public static XMPPConnection getConnection(String domain,int port) throws XMPPException {
- ConnectionConfiguration config = new ConnectionConfiguration(domain,port);
- XMPPConnection connection = new XMPPConnection(config);
- connection.connect();
- return connection;
- }
断开
connection.disconnect();
四、登陆
connection.login("javatest2011@gmail.com", "*****");
五、账户操作
可以对账户进行基本操作,包括注册,注销,修改密码
- /**
- * 注册用户
- * @param connection
- * @param regUserName
- * @param regUserPwd
- * @return
- */
- public static boolean createAccount(XMPPConnection connection,String regUserName,String regUserPwd)
- {
- try {
- connection.getAccountManager().createAccount(regUserName, regUserPwd);
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- /**
- * 删除当前用户
- * @param connection
- * @return
- */
- public static boolean deleteAccount(XMPPConnection connection)
- {
- try {
- connection.getAccountManager().deleteAccount();
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- /**
- * 删除修改密码
- * @param connection
- * @return
- */
- public static boolean changePassword(XMPPConnection connection,String pwd)
- {
- try {
- connection.getAccountManager().changePassword(pwd);
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- XMPP——Smack[1]连接、登陆及账户操作
- XMPP——Smack[1]连接、登陆及账户操作
- XMPP——Smack[1]连接、登陆及账户操作
- XMPP——Smack[1]连接、登陆及账户操作
- XMPP——Smack[1]连接、登陆及账户操作
- XMPP——Smack
- XMPP——Smack[1]离线消息实现
- XMPP——Smack[1]离线消息实现
- XMPP——Smack[3]用户列表,头像,组操作,用户操作
- XMPP——Smack[3]用户列表,头像,组操作,用户操作
- XMPP——Smack[3]用户列表,头像,组操作,用户操作
- XMPP——Smack[3]用户列表,头像,组操作,用户操作
- XMPP——Smack[3]用户列表,头像,组操作,用户操作
- XMPP——Smack[3]用户列表,头像,组操作,用户操作
- XMPP——Smack[3]用户列表,头像,组操作,用户操作
- XMPP——Smack[5]文件传输及离线消息的获取
- XMPP——Smack[5]文件传输及离线消息的获取
- XMPP——Smack[5]文件传输及离线消息的获取
- ios 版 qq 聊天记录的导出
- 简单模拟微信长按语音发送效果
- Visual Studio 开发环境中无法浏览页面/无法进行调试
- chromium r197479g版本编译运行
- 网页上显示天气、IP情况
- XMPP——Smack[1]连接、登陆及账户操作
- 哈夫曼树与哈夫曼编码
- CodeForces 276E - Little Girl and Problem on Trees 区间更新..N+1个线段树
- 程序的局部变量 全局变量 动态申请数据分别存储在什么地方?
- Linux检测网络故障以及恢复网络的方法
- html 文本框 显示输入字符
- Visual Assist X 注释报错的解决
- iphone数据存储之-- Core Data的使用(一)
- 【C/C++学习】之十三、虚函数剖析