即时通讯之服务端篇Tigase.

摘要

xmpp是一个应用层协议,主要做网页版即时通讯,是基于RFC3920和RFC3921实现,服务端常见的框架有openfire,tigase,prosody等,这三个都亲自踩过坑,唯有tigase8.0相对牛逼(完善)一些,客户端主要就是strophejs了。tigase是Java基于maven做的,openfire是netty框架,当然这块对于我也是比较难入手,大多是从配置入手。

tigase8.0官方资料

下载安装

官方安装教程

6. Quick Start Guide

tigase支持多平台,windows相对简单,源码下载执行即可,当然配置jre以及jdk那是必须的了,这里着重介绍linux的配置运行以及查看log。

  • 安装mysql
    tigase-8.0依赖mysql版本5.7以上,当然,也可以在安装导向界面选择内置数据库。

    CentOs Installing MySQL
    shell> sudo yum install mysql-community-server

  • 下载源码包到/home

  • 解压 tar -zxvf tigase-server-8.0.0-b10083-dist-max.tar.gz
  • 进入解压目录cd tigase-server-<version>
  • 配置jdk(JAVA_HOME) 1.8.0以上
  • 启动服务scripts/tigase.sh start etc/tigase.conf
    检查端口8080是否开启 netstart -apnl|grep 8080
  • 浏览器地址栏运行,比如:127.0.0.1:8080
    默认采取http摘要认证,账号密码是admin tigase, 成功登陆以后根据提示设置后台,组件以及数据库。
  • 重启服务

    ./scripts/tigase.sh stop
    ./scripts/tigase.sh start etc/tigase.conf

配置

  • 归档配置

    message-archive {
        archive-repo-uri = 'jdbc:mysql://localhost/tigasedb7?user=root&password=root&useUnicode=true&characterEncoding=UTF-8',
        msg-archive-paths = [ '-/message/result[urn:xmpp:mam:1]' '/message/body', '/message/subject' ],
        tags-support = true
    }
    //session manager
    sess-man {
        message-archive {
            default-store-method = 'message',
            required-store-method = 'body'
        },
        'urn:xmpp:mam:1' () {}
        
    }
  • 群聊MUC配置

    muc {
        //不设置群密码
        'muc-lock-new-room' = false
         default_room_config {
            maxhistoryfetch = 0
            roomconfig_membersonly = false
            roomconfig_persistentroom = true
        }   
    }
  • 查询服务lsof -i -P
  • 查看日志vim logs/tigase-console.log

添加账号及测试

  • psi粉墨登场

升级

Upgrading to v8.0.0 from v7.1.0
亲测7.1以下版本也是可以的。

数据库表分析

参考文献

  • 《XMPP The Definitive Guide》
    原文作者:zeronlee
    原文地址: https://segmentfault.com/a/1190000019746492
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞