专注人工智能在金融领域的应用

基于Openfire的即时通信平台

Openfire 是基于XMPP(Jabber)协议的开源实时协作(RTC)服务器,采用Java实现。可以使用它轻松地构建高效率的即时通信服务器。

Smack是XMPP传输协议的Java 实现,提供一套可扩展的API。然而,有时候需要使用自己定制的XML内容的方式来实现自己的功能。

Spark也是一个开源,跨平台的IM客户端。支持聊天、语音、视频、会议、文件收发、截屏、连接msn等功能。Spark的核心是Smack。

如果企业内部部署IM,使用Openfire+Spark是最佳组合。

下图展示了三者之间的关系:

《基于Openfire的即时通信平台》

从图上可以了解到,Client 端和Server端都可以通过插件的方式来进行扩展,Smack是二者传递数据的媒介。

Openfire、Smack、Spark源码可从官方网站http://www.igniterealtime.org获得。

本文主要讲解如何通过Openfire和Smack实现自己的通信客户端。

一、           Openfire的安装和配置

1、下载最新的openfire安装文件

官方下载站点:http://www.igniterealtime.org/downloads/index.jsp#openfire

下载地址:

Exe:http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire_3_7_1.exe

2、下载完成后,执行安装文件,进行安装。

3、下面我们启动openfire服务器,并配置它。在C:\Program Files\openfire\bin目录下有一个电灯泡的openfire.exe文件,双击执行,启动完成后可以看到。

《基于Openfire的即时通信平台》

4、点击Launch Admin按钮进入http://127.0.0.1:9090/setup/index.jsp页面,配置openfire服务器。

5、选择语言 中文简体

《基于Openfire的即时通信平台》

点击continue进入。

6、配置服务器域名

《基于Openfire的即时通信平台》

如果你是本地访问,那么你可以不修改或是使用localhost、127.0.0.1的方式,如果你用于外网或局域网访问,那么你的地址配置成外网或局域网地址。

7、选择数据库

《基于Openfire的即时通信平台》

选择openfire自带的,当然你也可以选择你的数据库类型。如Oracle、SQLServer、MySQL等。如果openfire没有带 jdbc的连接驱动,你需要添加连接数据库的jdbc驱动;驱动放在C:\Program Files\openfire\lib目录下。

8、选择特性配置,默认即可

《基于Openfire的即时通信平台》

9、管理员邮件,可以跳过这步

《基于Openfire的即时通信平台》

10、安装完成

《基于Openfire的即时通信平台》

进入管理员控制台页面。

11、进入http://127.0.0.1:9090/login.jsp页面后,输入admin、密码admin登陆进入

《基于Openfire的即时通信平台》

12、进入后可以看到

《基于Openfire的即时通信平台》

服务器名称就是客户端的连接地址;你可以使用Spark连接这个地址进行IM通信聊天……

至此,openfire的安装和配置已经完成。

二、           客户端开发

建立一个Java应用工程,引入Smack.jar包。以下代码即可完成客户端通信。

  1. package com.wbc.openfireclient;   
  2.   
  3. import org.jivesoftware.smack.Chat;   
  4.   
  5. import org.jivesoftware.smack.Connection;   
  6.   
  7. import org.jivesoftware.smack.MessageListener;   
  8.   
  9. import org.jivesoftware.smack.XMPPConnection;   
  10.   
  11. import org.jivesoftware.smack.XMPPException;   
  12.   
  13. import org.jivesoftware.smack.packet.Message;   
  14.   
  15. public class test {   
  16.   
  17. /**
  18.  
  19. * @param args  
  20.  
  21. * @throws XMPPException  
  22.  
  23. */  
  24.   
  25. public static void main(String[] args) throws XMPPException {   
  26.   
  27. /*需要根据个人在安装Openfire时设置的服务器地址来进行设置,笔者只在本机进行测试,直接用127.0.0.1,大家需要根据自己的情况来进行设置。*/  
  28.   
  29. Connection connection = new XMPPConnection(“127.0.0.1″); connection.connect();   
  30.   
  31. connection.login(“admin”, “admin”);   
  32.   
  33. /* wbc@127.0.0.1是你要连接的客户端*/  
  34.   
  35. Chat chat = connection.getChatManager().createChat(“wbc@127.0.0.1″, new MessageListener() {   
  36.   
  37. @Override  
  38.   
  39. public void processMessage(Chat chat, Message message) {   
  40.   
  41. System.out.println(“Received message: ” + message.getBody().toString());   
  42.   
  43. try {   
  44.   
  45. chat.sendMessage(“我是admin!”);   
  46.   
  47. catch (XMPPException e) {   
  48.   
  49. // TODO Auto-generated catch block   
  50.   
  51. e.printStackTrace();   
  52.   
  53. }   
  54.   
  55. }   
  56.   
  57. });   
  58.   
  59. chat.sendMessage(“我是admin!”);   
  60.   
  61. while(true);   
  62.   
  63. }   
  64.   
  65. }  

接下来我们运行Openfire和Spark,Spark注册一个用户wbc并登陆。运行本程序,即可与Spark用户名为wbc的用户进行通信了。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>