`
wiseideal
  • 浏览: 448481 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

XMPP下的注册与登录

 
阅读更多

前面讲了本地如何搭建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("登录成功");

 

 

代码太凌乱 上来格式都变了 还是整个项目看着方便

 

 

 

 

 

  • 大小: 20.4 KB
分享到:
评论

相关推荐

    xmpp实现smack登录,注册,聊天功能

    android下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能

    xmpp重连 注册两遍

    ### XMPP重连与注册两遍问题解析及解决方案 #### 一、问题背景 XMPP (Extensible Messaging and Presence Protocol) 是一种基于XML的即时通讯协议。它支持客户端到服务器的连接,同时也支持服务器到服务器的连接。...

    xmpp下的即时聊天客户端

    XMPP服务器如ejabberd、Openfire等,负责处理用户的注册、登录、消息路由等功能,而客户端则负责用户界面和与服务器的交互。 即时聊天客户端的开发通常涉及以下关键组件: 1. **连接管理**:客户端首先需要连接到...

    安卓xmpp和tomcat注册登录

    基本的登录和注册模块demo,xmpp连接,tomcat

    android下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能

    在这个项目中,我们利用Smack-4.2.1库来实现在Android上使用XMPP进行各种交互,如登录、注册、发送单聊消息、加入聊天室和发送群聊消息等基本功能。 首先,我们需要了解Smack-4.2.1。Smack是一个开源的Java库,专门...

    XMPP.zip_XMPP即时通信_aioxmpp_xmpp _xmpp qq_即时通讯

    1. **注册与登录**:用户可以通过XMPP服务器注册并登录账户。 2. **好友系统**:添加、删除好友,查看好友列表。 3. **发送与接收消息**:实现一对一的私聊和群组聊天。 4. **在线状态**:显示用户在线、离线状态,...

    XMPP的安卓源码

    1. **XMPPConnection**:表示与服务器的连接,负责登录、登出和断开连接操作。 2. **Presence**:表示用户的状态,如在线、离线、忙碌等。 3. **Message**:用于发送和接收消息的类,可以包含文本、文件或其他数据。...

    在Android使用XMPP详细解说

    - 登录:使用XMPPConnection对象的login()方法登录服务器。 ### 4. 发送和接收消息 - 发送消息:使用Message类创建一个新的消息对象,指定接收方JID,然后调用connection对象的sendPacket()方法发送。 - 接收消息...

    xmpp demo

    2. **连接服务器**:使用XMPP库建立与Openfire服务器的连接。这包括设置服务器地址、端口、用户名和密码等参数,以及处理连接建立和断开的情况。 3. **注册和登录**:用户需要在Openfire服务器上注册账号,然后在...

    xmpp客户端源代码

    4. **注册与登录**:用户在首次使用时需要注册,之后每次启动应用时登录。客户端需要处理注册用户的请求,以及在成功认证后发送登录请求到服务器。 5. **实体发现与会话建立**:XMPP允许客户端发现其他在线用户并...

    基于XMPP的即时通信实现代码

    总之,“基于XMPP的即时通信实现代码”是一个涵盖用户生命周期管理(注册、登录)和社交功能(添加、删除好友)以及核心通信功能的完整系统。通过深入理解和应用这些概念,开发者可以构建自己的IM应用,为用户提供...

    XMPP正式RFC标准3920

    本文档还定义了一些与互联网编号分配机构(IANA)相关的事项,包括端口号、XML命名空间等的注册和管理。 #### 16. 参考文献 最后,文档列出了所有参考的文献和技术规范,以便读者深入了解XMPP协议的技术背景和发展...

    如何使用xmpp4r进行匿名登录

    博文链接:https://magicgod.iteye.com/blog/201997

    IM 基于XMPP协议

    注册过程通常涉及创建一个新的XMPP用户账户,这需要与XMPP服务器交互,发送注册请求并处理响应。在iOS应用中,可以设计一个注册界面,收集用户输入的用户名、密码和其他必要信息,然后通过XMPPStream对象发送注册...

    xmpp的使用 android版本

    2. 用户登录与注册: 使用AbstractXMPPConnection的login方法进行登录,注册则需要通过AccountManager类创建新用户。 3. 发送单聊消息: 创建Message对象,设置目标JID和消息内容,然后通过...

    xmpp仿qq完整iOS项目

    在仿QQ项目中,用户注册和登录过程是通过XMPP框架实现的,这涉及到生成JID(Jabber ID)和处理认证请求。 4. **实时通信**:XMPP的核心是实时通信,包括一对一聊天、群聊、文件传输等。项目可能包含了如何发送、...

    Xmpp服务器与客户端

    客户端通常会通过建立TCP连接到服务器,然后使用XMPP协议进行登录、发送和接收消息。在推送场景下,客户端会在后台保持与服务器的长连接,以便在接收到新消息时立即通知用户。 实现XMPP推送的具体步骤如下: 1. **...

    iOS xmpp ejabberd服务器

    它支持用户注册、登录、发送消息、创建群组聊天以及实时状态更新等功能。开发者通常会使用一个XMPP框架,如 CocoaPods 中的XMPPFramework,来简化iOS应用中的XMPP编程。 接下来,你需要配置ejabberd服务器。这包括...

    gloox1实现xmpp协议

    2. **注册与登录**:使用`Client::registerUser()`注册新用户,通过`Client::authenticate()`进行登录。 3. **添加好友与聊天**:通过`Client::subscribe()`添加好友,`Client::sendPresence()`发送在线状态,`...

Global site tag (gtag.js) - Google Analytics