xmpp openfire linux 安装 im 及时通讯服务器

xmpp openfire linux  安装 im 及时通讯服务器

技术栈: openfire+smack+spark

Smack是一个开源,易于使用的XMPP客户端类库。Smack API, 是一个 Java 的XMPP Client Library,也是由Jive Software开发。 优点:编程简单。 缺点:API并非为大量并发用户设计,每个客户要1个线程,占用资源大,1台机器只能模拟有限(数千个)客户。Smack是一个用 java 写的XMPP客户端代码库, 是 spark 的核心。

smack demo android :https://github.com/mini188/SmackDemo 

spark  非大数据 spark ,类似 fetion 飞信的客户端

1.安装 java

jdk-7u79-linux-x64.tar.gz
tar xf jdk-7u79-linux-x64.tar.gz
vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_79
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
source /etc/profile

java -version

2.mysql 安装

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum localinstall -y mysql57-community-release-el7-7.noarch.rpm
yum install -y mysql-community-server
systemctl start mysqld.service
grep 'temporary password' /var/log/mysqld.log  看见密码 
【 Your password does not satisfy the current policy requirements】
set global validate_password_policy=0;
【Your password does not satisfy the current policy requirements】
select @@validate_password_length;
set global validate_password_policy=0
SET PASSWORD = PASSWORD('66666666');
use mysql
update user set host='%' where user='root' and host='localhost';
flush privileges; 
exit

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
firewall-cmd --list-all

mysql -uroot -p66666666
create database openfire;
use openfire ;
source openfire_mysql.sql
update grant all on openfire.* to admin@"%" identified by '66666666'
flush privileges;
exit

3.openfire 安装

tar xf openfire_3_8_2.tar.gz
cp openfire_3_8_2 /home/baoyou/soft/openfire_3_8_2

bin/openfire start

firewall-cmd --permanent --add-port=9090/tcp
firewall-cmd --permanent --add-port=9091/tcp
firewall-cmd --reload
firewall-cmd --list-all

4.访问地址

访问 openfire
http://192.168.206.237:9090/

5.安装步骤


xmpp openfire linux  安装 im 及时通讯服务器
 


xmpp openfire linux  安装 im 及时通讯服务器
 
xmpp openfire linux  安装 im 及时通讯服务器
 
xmpp openfire linux  安装 im 及时通讯服务器
 
xmpp openfire linux  安装 im 及时通讯服务器
 
xmpp openfire linux  安装 im 及时通讯服务器
 
xmpp openfire linux  安装 im 及时通讯服务器
 

 spark 


xmpp openfire linux  安装 im 及时通讯服务器
 

6. openfire 数据库结构


xmpp openfire linux  安装 im 及时通讯服务器
  

 7.java  測試

<!-- smack start -->
		<dependency>
			<groupId>jivesoftware</groupId>
			<artifactId>smack</artifactId>
			<version>3.1.0</version>
		</dependency> 
		<!-- smack end -->
package com.baoy.cn.smack;

import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.ChatManager;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.filter.PacketTypeFilter;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Packet;

/**
 * 
 * @author baoy
 *
 */
public class SmackTest {
	
    public static XMPPConnection con;
    public static Chat newChat;
    public static ChatManager chatmanager;

    public static void main(String[] args) throws InterruptedException {
        try {
            // 配置域和端口号,域可以换成IP地址
            ConnectionConfiguration config = new ConnectionConfiguration(
                    "www.baoyou.com", 5222);
            // 新建一个XMPPConnection对象
            con = new XMPPConnection(config);

            // 连接服务器
            con.connect();
            // 用户登录
            con.login("1223716098", "111111");
            // 是否已经通过身份验证
            System.out.println("Authenticated = " + con.isAuthenticated());

            addListener();
            // 获取一个ChatManager对象
            chatmanager = con.getChatManager();
            newChat = chatmanager.createChat("1223716098@www.baoyou.com",
                    new MessageListener() {
                        public void processMessage(Chat chat, Message message) {
                            System.out.println("I'm sending: "  + message.getBody());
                        }
                    });
            newChat.sendMessage("hi");
        } catch (XMPPException e) {
            e.printStackTrace();
        } finally {
            // 让线程休眠 然后再关闭连接
            Thread.sleep(20000000);
            con.disconnect();
        }
    }

    private static void addListener() {
        // 包的过滤器
        PacketFilter filterMessage = new PacketTypeFilter(Message.class);
        // 创建包的监听器
        PacketListener myListener = new PacketListener() {
            public void processPacket(Packet packet) {
                // 以XML格式输出接收到的消息
                System.out.println(packet.toXML());
                System.out.println("From: " + packet.getFrom() + "\n");
                System.out.println("Body: " + ((Message) packet).getBody());

                try {
                    // 尝试发送消息给服务器
                    newChat.sendMessage("hi again");
                } catch (XMPPException e) {
                    e.printStackTrace();
                }
            }
        };
        // 给连接注册一个包的监听器
        con.addPacketListener(myListener, filterMessage);
    }
}

 
xmpp openfire linux  安装 im 及时通讯服务器
 

 8.openfire web  向所有用户发送 


xmpp openfire linux  安装 im 及时通讯服务器
 
9.日志显示


xmpp openfire linux  安装 im 及时通讯服务器
 
 

 10.注意

1. host  改为域名  

linux

vim /etc/hosts  

192.168.206.237 www.baoyou.com

windows

C:\WINDOWS\system32\drivers\etc\hosts

 192.168.206.237 www.baoyou.com

 2. JID  为  用户名@域名

eg: 1401155710@www.baoyou.com

捐助开发者 

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(支持支付宝和微信 以及扣扣群),没钱捧个人场,谢谢各位。


xmpp openfire linux  安装 im 及时通讯服务器xmpp openfire linux  安装 im 及时通讯服务器xmpp openfire linux  安装 im 及时通讯服务器
 
 
 谢谢您的赞助,我会做的更好!

相关推荐