前面讲了本地如何搭建XMPP环境 其实我不懂 也没认真的好好研究原理 这肯定是要看的 不过先上手把代码拼上去 再细细debug 一点点的理解 这两篇的博客也是想帮助那些和我过去一样 认为XMPP是一个多高端多遥远的东西 我想告诉那些人的是 其实就在你手边
因为我也才接触 不敢保证代码规范 以及是否有隐藏的bug 各位如果有缘 看过有帮助就好 没有帮助笑笑就算了
这里需要使用到插件 asmack-jse.jar
首先最重要的是配置连接
public static String host = "192.168.1.101";
public static int port = 5222;
static XMPPConnection connection;
//依葫芦画瓢
static{
XMPPConnection.DEBUG_ENABLED = true;
ConnectionConfiguration configuration = new ConnectionConfiguration(host, port);
connection = new XMPPConnection(configuration);
connection.DEBUG_ENABLED = true;
ProviderManager pm = ProviderManager.getInstance();
configure(pm);
}
注意这里的host 貌似加http会出问题 应该根本就不是用的http协议吧 端口默认是5222 你可以去openfire服务器配置中查询
接下来注册和登录就好说了
注册
Registration reg = new Registration();
reg.setType(IQ.Type.SET);
reg.setTo(MainActivity.connection.getServiceName());
reg.setUsername(usernameEdt.getText().toString());
reg.setPassword(passwdEdt.getText().toString());
reg.addAttribute("android", "geolo_createUser_android");
System.out.println("reg:" + reg);
PacketFilter filter = new AndFilter(new PacketIDFilter(reg
.getPacketID()), new PacketTypeFilter(IQ.class));
PacketCollector collector = MainActivity.connection
.createPacketCollector(filter);
MainActivity.connection.sendPacket(reg);
result = (IQ) collector.nextResult(SmackConfiguration
.getPacketReplyTimeout());
// Stop queuing results
collector.cancel();// 停止请求results(是否成功的结果)
if (result == null) {
Toast.makeText(getApplicationContext(), "服务器没有返回结果",
Toast.LENGTH_SHORT).show();
} else if (result.getType() == IQ.Type.ERROR) {
if (result.getError().toString().equalsIgnoreCase(
"conflict(409)")) {
Toast.makeText(getApplicationContext(), "这个账号已经存在",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "注册失败",
Toast.LENGTH_SHORT).show();
}
} else if (result.getType() == IQ.Type.RESULT) {
Toast.makeText(getApplicationContext(), "恭喜你注册成功",
Toast.LENGTH_SHORT).show();
}
登录
MainActivity.connection.login(usernameEdt.getText().toString(), pwdEdt.getText().toString());
Button loginBtn = (Button) findViewById(R.id.btn_login);
loginBtn.setEnabled(false);
loginBtn.setText("登录成功");
代码太凌乱 上来格式都变了 还是整个项目看着方便
相关推荐
XMPP下实现注册登录,还是比较容易理解的一份代码。但是关于XMPP的东西还是需要慢慢来!
android下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能
基本的登录和注册模块demo,xmpp连接,tomcat
android下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能
博文链接:https://magicgod.iteye.com/blog/201997
D3Xmpp 是一个完整的 XMPP 的 Android 的项目服务端使用 openfire 3.9.3客户端使用 Android 4.2.2集成第三方:百度地图sdkasmack.jaruniversal-image-loader-1.9.3.jar功能注册登录会员会员个人资料修改基本聊天语音...
android下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能
XMPP即时聊天 QQ 微信 用gmail账户登录 无需注册 适用各种版本
客户端利用asmack中提供的XMPPConnection类与服务器建立持久连接,并通过该连接进行用户注册和登录认证,同样也是通过这条连接,接收服务器发送的通知。androidpn服务器端也是java语言实现的,基于openfire开源工程...
基于XMPP协议的类似QQ的即时通信demo 简单实现了 注册,登录,添加好友,删除好友,好友的通信 包括发文本,图片和声音。
直接当一个model导入.入口是startActivity(new Intent(this, com.xmpp.xmppchat.LoginActivity.class));.要重新修改IP和端口号,比之前的JAVA版本,实现了语音和照片拍照等功能
这是一个完整的xmpp的...注册登录会员 会员个人资料修改 基本聊天 语音、图片、表情、动态表情、发送位置聊天(位置需要注册百度api) 群聊(openfire需要安装插件) 位置共享(实验功能,openfire需要安装插件)
该资源 基于xmpp协议 以asmack为第三方源码包,以openfire为服务器, 实现了 asmack 注册、登录、添加好友、删除好友、一对一聊天 的功能。 未完待续
Android 基于xmpp协议,smack包,openfire服务端的...实现了注册,登录,读取好友列表,搜索好友,添加分组,添加好友,删除好友,修改心情,两个客户端之间的信息发送与接收,监听发送来的好友申请等功能,见博客:...
搭建QQ登录,注册,添加好友,删除好友,发送消息功能
通过实际开发,我们深入探索了XMPP协议在实时通讯中的实现细节,包括用户注册、登录、添加好友、创建群组、发送消息等功能的实现过程。 此外,我们还对XMPP协议的性能和安全性进行了测试和分析。通过对比测试,我们...
android下的XMPP对应smack4.1.4下实现注册,登录,单聊文本,语音,图片发送,添加好友,修改密码,注销等功能(Androidstuido开发环境)
#cnbin_XMPPChat 一个XMPP的详细实例,实现登录、注册,获取好友列表、发送文字、发送语音、获取好友头像图片功能。 项目截图
本项目是一个基于XMPP的微客服的项目源码,本项目实现了一个差不多完整的IM体系,登录、注册、好友管理、个人设置、消息提醒、二维码、文字表情图片语音聊天不过暂时还没有群聊功能,微客服提供后台支持,比较适合...