Deploying OpenFire for IM (instant message) service (TCP/IP service) with database MySQL , client Spark on linux部署OpenFire IM 消息中间件服务
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 消息中间件服务的更多相关文章
- 基于TCP/IP协议的socket通讯client
package com.ra.car.utils; import java.io.BufferedReader; import java.io.IOException; import java.io. ...
- c# TCP/IP编程
这东西很多朋友都有写过了,我也就写着玩玩,就当做个笔记吧.不废话了. TCP/IP在数据通信中被广泛的使用,自然得包含客户端和服务端,当然,自己自言自语不是什么不可以,可那样貌似有点神经. 好了,那就 ...
- TCP/IP网络编程之多种I/O函数
send和recv函数 在之前的学习中,我们在不少示例中用到send和recv这两个函数,但一直没有详细解释过着两个函数中每个参数的含义.本节将介绍Linux平台下的send&recv函数 # ...
- 『TCP/IP详解——卷一:协议』读书笔记——01
从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...
- SQL Server 连接问题-TCP/IP
原文:SQL Server 连接问题-TCP/IP 出自:http://blogs.msdn.com/b/apgcdsd/archive/2012/02/24/ms-sql-server-tcp-ip ...
- linux视频学习3(linux安装,shell,tcp/ip协议,网络配置)
linux系统的安装: 1.linux系统的安装方式三种: 1.独立安装linux系统. 2.虚拟机安装linux系统. a.安装虚拟机,基本是一路点下去. b.安装linux. c.linux 安装 ...
- TCP/IP网络编程 读书笔记1
本篇主干内容是TCP/IP网络编程1-9章学习笔记 1. linux文件描述符 描述符从3开始以由小到大的顺序编号,0,1,2,分配给标准I/O用作标准输入.标准输出和标准错误. 2. 协议族与套接字 ...
- tcp/ip原理/三次握手/四次挥手
@ tcp/ip原理 1.1 tcp/ip三次握手 1.1.1 建立过程说明 a) 由主机A发送建立TCP连接的请求报文, 其中报文中包含seq序列号, 是由发送端随机生成的, 并且还将报文中SY ...
- 用C#基于WCF创建TCP的Service供Client端调用
本文将详细讲解用C#基于WCF创建TCP的Service供Client端调用的详细过程 1):首先创建一个Windows Service的工程 2):生成的代码工程结构如下所示 3):我们将Servi ...
随机推荐
- MVC验证13-2个属性至少输入一项
原文:MVC验证13-2个属性至少输入一项 有时候,我们希望2个属性中,至少有一个是必填,比如: using Car.Test.Portal.Extension; namespace Car.Te ...
- C语言库函数大全及应用实例十四
原文:C语言库函数大全及应用实例十四 [编程资料]C语言库函数大全及应用实例十四 函数名: strset 功 能: 将一个串 ...
- JS对text非空判断,非空校验
function JTrim(s){ return s.replace(/(^\s*)|(\s*$)/g, "");} //你先调用一下这个方法,然后在判断 function ...
- 苹果浏览器Safari对JS函数库中newDate()函数中的参数的解析中不支持形如“2020-01-01”形式
苹果浏览器safari对new Date('1937-01-01')不支持,用.replace(/-/g, "/")函数替换掉中划线即可 如果不做处理,会报错:invalid da ...
- UiAutomator源码分析之注入事件
上一篇文章<UiAutomator源码分析之UiAutomatorBridge框架>中我们把UiAutomatorBridge以及它相关的类进行的描述,往下我们会尝试根据两个实例将这些类给 ...
- Java堆栈(转)
Java栈与堆 ----对这两个概念的不明好久,最终找到一篇好文,拿来共享 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自己主动管理栈和堆, ...
- linux通过建模工具Umbrello
https://umbrello.kde.org/ Umbrello UML Modeller is a Unified Modelling Language (UML) diagram progra ...
- 为Pythonic论坛添加一个“专题”功能
代码还没读完就踏上了修改功能的深坑.还好思路清晰,通过修改模板和视图,实现了专题模块 原论坛的模式是用户点击节点发帖,然后就归到节点的分类里面了.我需要一个功能,就是右侧需要一个专题区,管理员发帖的话 ...
- 19.最经济app发短信的方法
在创业团队.一个重要的原则是能省就省,该花的花,明智地使用金钱. 今的app,为了获取用户的社交关系.须要用户的手机号注冊. 用手机号注冊就涉及到一个发送短信验证码的问题,那怎么才干在短信服务上投入最 ...
- Nancy学习
Nancy学习 一.认识Nancy 今天听讲关于Nancy框架的培训,被Nancy的易用性所吸引.故晚上回来梳理了一下知识. 什么是Nancy呢?如标题所述,Nancy是一个轻量级的独立的框架: Na ...