Are you a hacker?

How to build another QQ/Wechat/whatsapp/skype/imessage?

Let's go through this!!!!

Materials:

A linux/unix/windows/mac computer/server, and do some basic things!

Are you feeling high?

  Okay, let's ride the rocket!

Get materials:

1. A search engine

duckduckgo.com to search 'openfire'

2. Service software

'OpenFire' from here http://www.igniterealtime.org/downloads/index.jsp

and the client software spark: 'Spark'             ( here for example: download the http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire_3.9.3_all.deb , because i deployed it on a debian/ubuntu machine )

3. Packages installation

# for some situations, some other packages such as openjdk--jre should be installed or other packages
sudo apt-get install apache2 openjdk--jre mysql-server mysql-client -y
# then
sudo dpkg -i /path/to/openfire_3..3_all.deb

4. Database settings

mysql -uroot -p
# then create a database in the mysql console
mysql> create database openfire;

5. Service Deployment

Go to the web page:

xx.xx.xx.xx:9090

then you will see some references guiding you to install. ( choose the outer base database , not the default database. Here MySQL preferred)

next and next => then finish.

6. Plugin installation: Monitoring Service

Go to the web page:

xx.xx.xx.xx:9090

click on the green 'cross' button  on the right.

7. Plugin Settings

toggle the "Archive one-to-one chats" and/or "Archive group chats"

8. Have an instant conversation

(P.S. you will need to add some one before the conversation one-to-one, of course)

In this case, create a user here:

Then open the client software!!!

# start the client 'Spark'
sudo sh /path/to/Spark/resources/startup.sh &

Then you will see the user interface as this:

Login!!!

Do the same thing for another account . e.g. another account: 'admin'

Send messages between different clients

From the page:   Server -> Archiving -> Search archive , we can see their talking record. WOW! What a conversation :P

9. Data tasting

We are not satisfied with that just reading some thing from web page.

Here feel what we got!

mysql -uroot -p
# input your password
mysql> use openfire;
mysql> select * from ofUser;
"something dumped out" mysql> select * from ofMessageArchive;
"other dumped out"

Notice : the table 'ofMessageArchive' is created because of the enabling of the plugin 'monitor archiving'

Let's see what we got!!

for user:

for the conversation record (archived)

Yeah! we see that!

"Next big" :

client A -> middleware -> client B

client B -> middleware -> client A

domestic server -> middleware -> client A

domestic server -> middleware -> client A, client B, client C, ...

client A  -> middleware -> domestic server

Happy hacking!

Deploying OpenFire for IM (instant message) service (TCP/IP service) with database MySQL , client Spark on linux部署OpenFire IM 消息中间件服务的更多相关文章

  1. 基于TCP/IP协议的socket通讯client

    package com.ra.car.utils; import java.io.BufferedReader; import java.io.IOException; import java.io. ...

  2. c# TCP/IP编程

    这东西很多朋友都有写过了,我也就写着玩玩,就当做个笔记吧.不废话了. TCP/IP在数据通信中被广泛的使用,自然得包含客户端和服务端,当然,自己自言自语不是什么不可以,可那样貌似有点神经. 好了,那就 ...

  3. TCP/IP网络编程之多种I/O函数

    send和recv函数 在之前的学习中,我们在不少示例中用到send和recv这两个函数,但一直没有详细解释过着两个函数中每个参数的含义.本节将介绍Linux平台下的send&recv函数 # ...

  4. 『TCP/IP详解——卷一:协议』读书笔记——01

    从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...

  5. SQL Server 连接问题-TCP/IP

    原文:SQL Server 连接问题-TCP/IP 出自:http://blogs.msdn.com/b/apgcdsd/archive/2012/02/24/ms-sql-server-tcp-ip ...

  6. linux视频学习3(linux安装,shell,tcp/ip协议,网络配置)

    linux系统的安装: 1.linux系统的安装方式三种: 1.独立安装linux系统. 2.虚拟机安装linux系统. a.安装虚拟机,基本是一路点下去. b.安装linux. c.linux 安装 ...

  7. TCP/IP网络编程 读书笔记1

    本篇主干内容是TCP/IP网络编程1-9章学习笔记 1. linux文件描述符 描述符从3开始以由小到大的顺序编号,0,1,2,分配给标准I/O用作标准输入.标准输出和标准错误. 2. 协议族与套接字 ...

  8. tcp/ip原理/三次握手/四次挥手

    @ tcp/ip原理 1.1 tcp/ip三次握手 1.1.1 建立过程说明 a)   由主机A发送建立TCP连接的请求报文, 其中报文中包含seq序列号, 是由发送端随机生成的, 并且还将报文中SY ...

  9. 用C#基于WCF创建TCP的Service供Client端调用

    本文将详细讲解用C#基于WCF创建TCP的Service供Client端调用的详细过程 1):首先创建一个Windows Service的工程 2):生成的代码工程结构如下所示 3):我们将Servi ...

随机推荐

  1. java 集装箱 arraylist 用法

    1. ArrayList概述: ArrayList 是一个数组队列.相当于 动态数组. 与Java中的数组相比.它的容量能动态增长.它继承于AbstractList.实现了List, RandomAc ...

  2. Android超炫日期日历控件:TimesSquare

    先看效果图: 使用说明: 在布局文件里: <com.squareup.timessquare.CalendarPickerView android:id="@+id/calendar_ ...

  3. MySQL引擎介绍ISAM,MyISAM,HEAP,InnoDB

    MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL. 在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型IN ...

  4. js面向对象学习总结

    1.函数作为参数进行传递 function a(str,fun){ console.log(fun(str)) }; function up(str){ return str.toUpperCase( ...

  5. javascript 学习总结(五)Function对象

    1.Function  函数调用(类似call方法) function callSomeFunction(someFunction, someArgument){ return someFunctio ...

  6. Knockout简单用法

    Knockout简单用法 在最近做的一个项目中,页面数据全部通过js ajax调用webapi接口获取,也就是说页面的数据全部使用javascript脚本填充,这就想到了使用一个MVVM模式的js框架 ...

  7. Solr 教程

    1.Solr安装 下载jdk-8u111-windows-i586_8.0.1110.14 下载solr-6.3.0.zip 2.配置JAVA_HOME 在"系统变量"中,设置3项 ...

  8. Java中的嵌套类和内部类

    以前看<Java编程思想>的时候,看到过嵌套类跟内部类的区别,不过后来就把它们的概念给忘了吧.昨天在看<数据结构与算法分析(Java语言版)>的时候,又遇到了这个概念,当时就很 ...

  9. 为ASP.NET MVC应用程序读取相关数据

    为ASP.NET MVC应用程序读取相关数据 2014-05-08 18:24 by Bce, 299 阅读, 0 评论, 收藏, 编辑 这是微软官方教程Getting Started with En ...

  10. ASP.NET MVC扩展点

    16个ASP.NET MVC扩展点[附源码] 1.自定义一个HttpModule,并将其中的方法添加到HttpApplication相应的事件中!即:创建一个实现了IHttpmodule接口的类,并将 ...