第一,安装好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
分享到:
相关推荐
综上所述,这个项目涉及到的技术栈包括XMPP协议、Smack库的使用、Openfire服务器的部署和配置,以及Android应用开发中的UI设计、安全性和性能优化。通过这些技术的结合,可以构建出一个功能完善的即时通讯应用,为...
这个项目“android studio基于XMPP,Openfire,Smack聊天demo”提供了一个使用Android Studio、XMPP协议、Openfire服务器和Smack库实现的聊天应用示例。以下是关于这些关键技术的详细解释: **XMPP(Extensible ...
在Android平台上实现即时通讯(Instant Messaging,简称IM)系统,XMPP(Extensible Messaging and Presence Protocol)是一种常用的标准协议,而Openfire是一款基于XMPP的开源服务器软件。本项目"Android-XMPP-...
本项目“Android启动Service登陆Openfire实现基于XMPP Smack的消息推送功能”就是一个很好的示例,展示了如何利用Service和XMPP协议在Android设备上实现实时消息传递。 首先,Openfire是一款开源的XMPP服务器,它...
在这个“XMPP_OPenfire即时通讯IM-android版”项目中,我们关注的是在Android平台上利用Smack库实现与Openfire服务器的交互。 Smack是一个流行的Java库,支持XMPP协议,允许开发者在Java应用程序中实现IM功能。在这...
Openfire 是一个流行的 XMPP 服务器,而 Smack 则是与 Openfire 交互的客户端库。 在 Smack 中,`XMPPConnection` 是核心类,负责建立和管理到 Openfire 服务器的连接。`ConnectionConfiguration` 类用于配置连接...
本教程将聚焦于如何利用Openfire服务器和Smack库构建一个基于Android的IM应用。 Openfire是一款开源的、基于XMPP协议的实时通讯服务器。XMPP(Extensible Messaging and Presence Protocol)是一种标准通信协议,...
高仿android qq客户端,基于xmpp openfire smack。难得的即时通信学习源码。 介绍链接: http://blog.csdn.net/shimiso/article/details/11225873
先说一下为什么要写这篇博客,是因为本人在周末在研究XMPP和OpenFire,从网上下载了个Demo,但跑不起来,花了很长时间,经改造后,跑起来了,写个篇博文也是希望后边学习XMPP和OpenFire的同学下载后直接运行,少走...
Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现。实现了注册,登录,读取好友列表,搜索好友,添加分组,添加好友,删除好友,修改心情,两个客户端之间的信息发送与接收,监听发送来的好友...
简单列一下这个客户端实现的功能: 1.聊天 2.离线消息 3.添加,删除好友 4.添加,移动好友分组 5.设置昵称 6.监控好友状态 7.网络断开系统自动重连接 8.收到添加好友请求消息处理 9.收到系统广播消息处理 ...
Android XMPP 即时通讯 Openfire 二次开发是基于 XMPP 协议的即时通讯解决方案,使用 Openfire 作为服务器端,Spark 作为客户端,Smack 作为 XMPP 传输协议的实现。XMPP 协议是一个基于 XML 的消息传递协议,...
基于xmpp openfire smack 的即时通信客户端,高仿qq,难得的学习资源。 资源介绍:http://blog.csdn.net/shimiso/article/details/11225873
本篇文章将深入探讨如何利用XMPP协议,结合OpenFire服务器以及Smack类库,在Android项目中构建一个即时通讯应用。 首先,我们需要了解OpenFire服务器。OpenFire是一款免费、开源的XMPP服务器,它支持多种操作系统,...
android openfire xmpp smack即时通讯,包括:聊天发生文字,表情,图片,语音。添加删除好友,消息提醒,群聊,邀请好友进入房间,聊天记录保存等等。界面美观。最后说明:此demo是在网上一个叫EIM企信通的demo基础...
Openfire是一款开源的XMPP服务器,而Smack是Java和Android上用于XMPP协议的客户端库。 首先,我们需要安装和配置Openfire服务器。访问Openfire官方网站下载最新版本的安装包,然后按照安装向导进行安装。在服务器...
Android上最常用的组合asmack +openfire。Asmack是smack的android版,是对xmpp协议进行...Openfire是一个开源的IM服务器,基于Xmpp实现。换句话说使用xmpp开发即时通讯应用的话,服务器端已经开发好了,就是openfire。
Openfire是一款基于XMPP协议的服务器软件,它提供了高效、安全的实时通讯服务,支持多种平台,包括Android。 在Android平台上开发基于XMPP的Openfire客户端,主要涉及以下几个核心知识点: 1. **XMPP协议理解**:...
Openfire是基于XMPP的服务器,提供了一个强大且可扩展的架构,使得开发者可以轻松创建聊天、协作和其他实时通信应用。 本文将深入探讨如何使用Smack库,一个Java实现的XMPP客户端库,来连接到Openfire服务器并进行...
综上所述,基于openfire的XMPP即时通信Android客户端开发涉及到服务器配置、协议理解、Android编程等多个技术领域,开发者需要具备扎实的技术基础和实践经验,才能成功构建一个高效、稳定的即时通讯系统。