第一,安装好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
分享到:
相关推荐
Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现.zip
android studio 基于XMPP,Openfire,Smack聊天demo 基于openfire3.9.3
高仿android qq客户端,基于xmpp openfire smack。难得的即时通信学习源码。 介绍链接: http://blog.csdn.net/shimiso/article/details/11225873
先说一下为什么要写这篇博客,是因为本人在周末在研究XMPP和OpenFire,从网上下载了个Demo,但跑不起来,花了很长时间,经改造后,跑起来了,写个篇博文也是希望后边学习XMPP和OpenFire的同学下载后直接运行,少走...
关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可以向openfire服务器注册用户,发送消息,并且可以通过监听器获得此用户的应答消息,以及构建聊天室,分组,个人通讯录等等。
简单列一下这个客户端实现的功能: 1.聊天 2.离线消息 3.添加,删除好友 4.添加,移动好友分组 5.设置昵称 6.监控好友状态 7.网络断开系统自动重连接 8.收到添加好友请求消息处理 9.收到系统广播消息处理 ...
基于xmpp openfire smack 的即时通信客户端,高仿qq,难得的学习资源。 资源介绍:http://blog.csdn.net/shimiso/article/details/11225873
android openfire xmpp smack即时通讯,包括:聊天发生文字,表情,图片,语音。添加删除好友,消息提醒,群聊,邀请好友进入房间,聊天记录保存等等。界面美观。最后说明:此demo是在网上一个叫EIM企信通的demo基础...
一个简单的Demo,Android工程,实现了启动Service,登陆Openfire服务器,实现简单的消息推送功能。
XMPP+Openfire4.5.1+Smack4.3.4+MySql,支持手机对手机,手机对PC(Spark)的消息收发
Android上最常用的组合asmack +openfire。Asmack是smack的android版,是对xmpp协议进行...Openfire是一个开源的IM服务器,基于Xmpp实现。换句话说使用xmpp开发即时通讯应用的话,服务器端已经开发好了,就是openfire。
Android 基于xmpp协议,smack包,openfire服务端的高仿QQ的即时通讯实现。实现了注册,登录,读取好友列表,搜索好友,添加分组,添加好友,删除好友,修改心情,两个客户端之间的信息发送与接收,监听发送来的好友...
android下的XMPP对应smack4.1.4下实现注册,登录,单聊文本,语音,图片发送,添加好友,修改密码,注销等功能(Androidstuido开发环境)
android openfire xmpp smack即时通讯,包括:聊天发生文字,表情,图片,语音。添加删除好友,消息提醒,群聊,邀请好友进入房间,聊天记录保存等等。界面美观。最后说明:此demo是在网上一个叫EIM企信通的demo基础...
android openfire xmpp smack即时通讯,包括:聊天发生文字,表情,图片,语音等.zip
基于Smack3.0.4+ Openfire3.10.2开发之Android 客户端之三(用户登入、用户注册与XMPP 服务器交互)。
xmppClient 基于openfire和smack的安卓客户端 todo 增加文档 优化tablayout图标 增加通知 完成发现,我界面 运行截图 运行截图
本项目是一套基于android+asmack+openfire+xmpp的安卓即时聊天服务端,项目直连google talk服务器,可以使用谷歌帐号登录客户端,测试需要至少两个谷歌帐号。在程序里添加好友即可聊天。聊天核心功能使用的smack库
搭建openfire后,用 smack api 连接服务的测试demo。运行官网范例,发现其实不易,smack4.1.4中缺少很多依赖于第3方的jar包。不断debug甚是痛苦,终于跑起来了。分享出来给只是想要个初体验的同学。
利用smack对xmpp协议的封装,对openfire服务器进行高效简单的连接