`

Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器

    博客分类:
  • xmpp
阅读更多
第一,安装好openfire后,启动openfire进入后台。我的登录名:admin  密码:admin.
如下:
[img]

[/img]



第二、创建一个用户,我 这里注册的用户名:test 密码:test.
[img]

[/img]


第三,创建android客户端,代码如下:(我的电脑的ip是:192.168.0.124,测试的时候改成自己的)
package com.example.openfiretest;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	private EditText accountEditText;
	private EditText passwordEditText;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		accountEditText = (EditText) findViewById(R.id.username);
		passwordEditText = (EditText) findViewById(R.id.password);

		findViewById(R.id.login).setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				String account = accountEditText.getText().toString();
				String password = passwordEditText.getText().toString();
				if (account.equals("") || password.equals("")) {
					Toast.makeText(MainActivity.this, "账号或密码不能为空!",
							Toast.LENGTH_SHORT).show();
				} else {
					ClientConServer ccs = new ClientConServer(MainActivity.this);
					boolean b = ccs.login(account, password);
					// 如果登录成功
					if (b) {
						Toast.makeText(MainActivity.this, "登陆成功!",
								Toast.LENGTH_SHORT).show();
						// startActivity(new
						// Intent(LoginActivity.this,MainActivity.class));
						// MainActivity.account=account;
					} else {
						Toast.makeText(MainActivity.this, "登陆失败!",
								Toast.LENGTH_SHORT).show();
					}
				}
			}
		});
	}
}



package com.example.openfiretest;

import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;

import android.content.Context;

public class ClientConServer {
	private static int PORT=5222;
	private Context context;
	public ClientConServer(Context context){
		this.context=context;

	}
	
	public boolean login(String a,String p){
		ConnectionConfiguration config = new ConnectionConfiguration("192.168.0.124", PORT);
		/** 是否启用安全验证 */
		config.setSASLAuthenticationEnabled(false);
		/** 是否启用调试 */
        //config.setDebuggerEnabled(true);
        /** 创建connection链接 */
		XMPPConnection connection = new XMPPConnection(config);
		try {
			/** 建立连接 */
			connection.connect();
			/** 登录*/
			connection.login(a, p);
                            /** 设置状态 */
	        Presence presence = new Presence     (Presence.Type.available);
	        presence.setStatus("Q我吧");
	        connection.sendPacket(presence);



			/** 开启读写线程,并加入到管理类中*/
			//ClientSendThread cst=new ClientSendThread(connection);
			//cst.start();
			//ManageClientThread.addClientSendThread(a, cst);
			return true;
		} catch (XMPPException e) {
			e.printStackTrace();
		}
		return false;
	 }
}


AndroidManifest.xml中添加:
<uses-permission android:name="android.permission.INTERNET" />



第四,启动android项目,用test用户登录,密码也是test,提示登录成功。
[img]

[/img]


第五,在openfire中的会话中多了一个用户:test
[img]

[/img]

android的客户端使用XMPP协议进行通信需要的jar包:
  • 大小: 53.3 KB
  • 大小: 11.5 KB
  • 大小: 28.2 KB
  • 大小: 12.1 KB
分享到:
评论
2 楼 endual 2014-02-26  
怎么保持会话,我搞不懂啊
1 楼 Jimmyxu0311 2013-03-26  
请问我安装openfire以后输入用户名和密码总是提示不正确是怎么回事啊?在mac上配置的!

相关推荐

    Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现.zip

    综上所述,这个项目涉及到的技术栈包括XMPP协议、Smack库的使用、Openfire服务器的部署和配置,以及Android应用开发中的UI设计、安全性和性能优化。通过这些技术的结合,可以构建出一个功能完善的即时通讯应用,为...

    android studio基于XMPP,Openfire,Smack聊天demo

    这个项目“android studio基于XMPP,Openfire,Smack聊天demo”提供了一个使用Android Studio、XMPP协议、Openfire服务器和Smack库实现的聊天应用示例。以下是关于这些关键技术的详细解释: **XMPP(Extensible ...

    Android-XMPP-openfire-实现IM

    在Android平台上实现即时通讯(Instant Messaging,简称IM)系统,XMPP(Extensible Messaging and Presence Protocol)是一种常用的标准协议,而Openfire是一款基于XMPP的开源服务器软件。本项目"Android-XMPP-...

    Android启动Service登陆Openfire实现基于XMPP Smack的消息推送功能

    本项目“Android启动Service登陆Openfire实现基于XMPP Smack的消息推送功能”就是一个很好的示例,展示了如何利用Service和XMPP协议在Android设备上实现实时消息传递。 首先,Openfire是一款开源的XMPP服务器,它...

    XMPP_OPenfire即时通讯IM-android版

    在这个“XMPP_OPenfire即时通讯IM-android版”项目中,我们关注的是在Android平台上利用Smack库实现与Openfire服务器的交互。 Smack是一个流行的Java库,支持XMPP协议,允许开发者在Java应用程序中实现IM功能。在这...

    基于xmpp_openfire_smack开发之smack类库介绍和使用

    Openfire 是一个流行的 XMPP 服务器,而 Smack 则是与 Openfire 交互的客户端库。 在 Smack 中,`XMPPConnection` 是核心类,负责建立和管理到 Openfire 服务器的连接。`ConnectionConfiguration` 类用于配置连接...

    基于openfire 的android IM 即时通讯smack的android IM

    本教程将聚焦于如何利用Openfire服务器和Smack库构建一个基于Android的IM应用。 Openfire是一款开源的、基于XMPP协议的实时通讯服务器。XMPP(Extensible Messaging and Presence Protocol)是一种标准通信协议,...

    高仿android qq客户端 基于xmpp openfire smack

    高仿android qq客户端,基于xmpp openfire smack。难得的即时通信学习源码。 介绍链接: http://blog.csdn.net/shimiso/article/details/11225873

    Xmpp和OpenFire实例

    先说一下为什么要写这篇博客,是因为本人在周末在研究XMPP和OpenFire,从网上下载了个Demo,但跑不起来,花了很长时间,经改造后,跑起来了,写个篇博文也是希望后边学习XMPP和OpenFire的同学下载后直接运行,少走...

    Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现.

    Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现。实现了注册,登录,读取好友列表,搜索好友,添加分组,添加好友,删除好友,修改心情,两个客户端之间的信息发送与接收,监听发送来的好友...

    基于xmpp openfire smack开发之Android客户端开发

    简单列一下这个客户端实现的功能: 1.聊天 2.离线消息 3.添加,删除好友 4.添加,移动好友分组 5.设置昵称 6.监控好友状态 7.网络断开系统自动重连接 8.收到添加好友请求消息处理 9.收到系统广播消息处理 ...

    Android XMPP 即时通讯 Openfire二次开发资料,非常齐

    Android XMPP 即时通讯 Openfire 二次开发是基于 XMPP 协议的即时通讯解决方案,使用 Openfire 作为服务器端,Spark 作为客户端,Smack 作为 XMPP 传输协议的实现。XMPP 协议是一个基于 XML 的消息传递协议,...

    即时通信源码 高仿android qq客户端 基于xmpp openfire smack.

    基于xmpp openfire smack 的即时通信客户端,高仿qq,难得的学习资源。 资源介绍:http://blog.csdn.net/shimiso/article/details/11225873

    Android使用XMPP协议、OpenFire服务器和Smack类库实现即时通信

    本篇文章将深入探讨如何利用XMPP协议,结合OpenFire服务器以及Smack类库,在Android项目中构建一个即时通讯应用。 首先,我们需要了解OpenFire服务器。OpenFire是一款免费、开源的XMPP服务器,它支持多种操作系统,...

    android openfire xmpp smack即时通讯,包括:聊天发生文字,表情,图片,语音等

    android openfire xmpp smack即时通讯,包括:聊天发生文字,表情,图片,语音。添加删除好友,消息提醒,群聊,邀请好友进入房间,聊天记录保存等等。界面美观。最后说明:此demo是在网上一个叫EIM企信通的demo基础...

    Android IM之基于Openfire+Smack的聊天服务器的搭建与测试

    Openfire是一款开源的XMPP服务器,而Smack是Java和Android上用于XMPP协议的客户端库。 首先,我们需要安装和配置Openfire服务器。访问Openfire官方网站下载最新版本的安装包,然后按照安装向导进行安装。在服务器...

    android使用smack,openfire通信

    Android上最常用的组合asmack +openfire。Asmack是smack的android版,是对xmpp协议进行...Openfire是一个开源的IM服务器,基于Xmpp实现。换句话说使用xmpp开发即时通讯应用的话,服务器端已经开发好了,就是openfire。

    基于xmpp协议的openfire android客户端

    Openfire是一款基于XMPP协议的服务器软件,它提供了高效、安全的实时通讯服务,支持多种平台,包括Android。 在Android平台上开发基于XMPP的Openfire客户端,主要涉及以下几个核心知识点: 1. **XMPP协议理解**:...

    基于smack连接openfire服务器的例子-JAVA

    Openfire是基于XMPP的服务器,提供了一个强大且可扩展的架构,使得开发者可以轻松创建聊天、协作和其他实时通信应用。 本文将深入探讨如何使用Smack库,一个Java实现的XMPP客户端库,来连接到Openfire服务器并进行...

    基于openfire为服务器的xmpp即时通信 Android客户端

    综上所述,基于openfire的XMPP即时通信Android客户端开发涉及到服务器配置、协议理解、Android编程等多个技术领域,开发者需要具备扎实的技术基础和实践经验,才能成功构建一个高效、稳定的即时通讯系统。

Global site tag (gtag.js) - Google Analytics