Chinaunix首页 | 论坛 | 博客
  • 博客访问: 172703
  • 博文数量: 118
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 12
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-21 16:38
文章分类

全部博文(118)

文章存档

2013年(118)

我的朋友

分类: Android平台

2013-08-15 16:59:50

上一节说了挺多的废话,俗话说的好:“光说不练假把式!”,我们这里就来动手实现一个基于XMPP协议和Android客户端的简单应用,为什么说这是一个简单应用,因为本人在做这个应用之前对于Android可以说是一窍不通,所以里面涉及到的程序都是非常的基础和简陋的,还希望大家能够见谅!

开发的第一步,我们来架设一个opnfire的服务器,关于这一步其实网上有很多,我这里提供我的一个步骤:
基本的条件:
操作系统:ubuntu12.04LTS X86 32
数据库:mysql
JDK
1、安装mysql

sudo apt-get install mysql-server

在安装的过程中系统会要求你设置mysql的密码,为了简单起见我们就设置成了“123456”.

2、创建openfire数据库

mysql -u root -p

CREATE DATABASE openfire;(注意这里有分号的哦!!!

quit;

3、安装JDK,这一步省略,因为大部分的操作系统都已经预装了jdk。

4、安装opnfire

首先:从openfire的官方网站下载适合自己操作系统的版本: 对于ubuntu就可以选择Debian的版本就可以了!

然后:sudo dpkg -i openfire_3.7.1_all.deb

最后:打开你的浏览器:输入
进行初始化安装,在数据库选择的时候,选择外部的数据库,并键入:
jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8

安装完成了!

现在服务器准备就绪了,我们来写一个小的java程序测试一下服务器是否能够,正常工作,首先我们打开:localhost:9090,登录到openfire服务器之上,我们在上面创建两个用户
用户:user1
密码:passw0rd

用户:user2
密码:passw0rd

password的o用0代替了!

创建完了用户,我们就来说用来进行开发的开源的库,原生的java库是,安卓的话需要用到asmack,当然原生的smack安卓也是支持的,但是当我们调用原生的库创建聊天室的时候会出现错误,所以如果你用安卓来开发还是建议你使用,现在asmack放在了github上管理,大家可以积极贡献开源社区哦!

我在实现的时候参考了smack的官方文档:其实这份官方文档已经非常的完备了,只是涉及到了具体的平台会出一些小的问题:
首先我们来创建一个java的工程,然后将smack的jar文件导入到java的工程之中,实现一个连接服务器的函数:

点击(此处)折叠或打开

  1. public class TestConnect{
  2.         public void connect(){
  3.             ConnectionConfiguration config = new ConnectionConfiguration("10.101.158.103",5222);
  4.      config.setSelfSignedCertificateEnabled(true);
  5.      config.setSASLAuthenticationEnabled(false);
  6.      config.setDebuggerEnabled(false);
  7.      config.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
  8.      XMPPConnection connection = new XMPPConnection(config);
  9.      try{
  10.      connection.connect();
  11.      Presence presence = new Presence(Presence.Type.available);
  12.      presence.setStatus("Q我吧");
  13.      connection.sendPacket(presence);
  14.      Thread.currentThread().sleep(100000);
  15.      }catch(Exception e){
  16.      e.printStackTrace();
  17.      }
  18.         }
  19.      public static void main(String[] args)throws XMPPException{
  20.      TestConnect tConnect=new TestConnect();
  21.      tConnect.connect();
  22.      }

  23.     }
一定要注意这里的ConnectionConfiguration("10.101.158.103",5222),这个IP地址是你本机的IP地址,不要写localhost或者127.0.0.1,不然会出现问题,默认的端口是:5222
假如执行了程序没有错误,当你登录到openfire服务器的时候会发现user2显示在线的状态了!!!


OK!!这样我们就搭建完成了自己的openfire服务器并且使用smack库连接成功了,下一节开始我们用android开发聊天室!

阅读(1230) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~