文档章节

Tigase server源码研究

李云风
 李云风
发布于 2014/06/12 17:49
字数 598
阅读 609
收藏 3
  1. 下载源代码:

     git clone https://repository.tigase.org/git/tigase-server.git

  2. 环境配置:

    a) mysql 安装 

    b)  jdk1.7.0安装

    c)  参考之前的文档,配置数据库,http://my.oschina.net/leegq/blog/226378

    d) 安装maven

  3. 启动数据库 

  4. 导入源代码到Intellij  IDEA. 

     pom.xml里面 maven-javadoc-plugin这个在编译的时候,会出错,我直接删掉了。

  5. 使用Intellij中得maven进行编译。编译通过。

  6. Intellij调试配置,

    在运行配置里面 修改这几项

    Main Class : tigase.server.XMPPServer

    Vm Options: -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djdbc.drivers=com.mysql.jdbc.Driver:org.postgresql.Driver:org.apache.derby.jdbc.EmbeddedDriver -Djava.ext.dirs=/Users/你自己的用户名/xos/dev2/tigase/test/tigase-server/jars

    Program arguments: --property-file etc/init.properties

    Working directory:/Users/你自己的用户名/xos/dev2/tigase/test/tigase-server

  7. 入口tigase.server.XMPPServer.java

  8. 与第三方用户系统集成。

   

  App登陆XMPP服务,需要进行用户认证,而用户认证处理是在TigaseCustomAuth.java 中 otherAuth方法中处理。

而需要和第三方用户系统集成,需要修改此方法(我暂时的处理方式是这样的)。

//1.通过uid,token, 发送请求到用户中心,认证用户

 //2.认证通过返回用户名和密码,在XMPP Server上认证用户(如果没有此用户,就创建用户,如果有了,就继续进行XMPP的用户认证,直到认证完成,返回客户端,表示登录成功)。

 代码片段如下:

    if (proto.equals(PROTOCOL_VAL_NONSASL)) {

String password = (String) props.get(PASSWORD_KEY);

BareJID user_id = (BareJID) props.get(USER_ID_KEY);

if (password != null) {

//return plainAuth(user_id, password);


                boolean isSuccess = false;

                try {


                    isSuccess = plainAuth(user_id, password);

                }

                catch (UserNotFoundException e) {


                    addUser(user_id, password);


                }

                finally {

                    if (isSuccess == false) {

                        isSuccess = plainAuth(user_id, password);

                    }


                }

                return  isSuccess;

            }

 9. 编译打包。

   a) 修改modules/master/pom.xml ,删除maven-javadoc-plugin.编译会出错。

  b) 安装必须工具, 

     git, python2, docutils and LaTeX ,ant

           LaTeX这个工具可以使用yum install texlive*安装。

  c) 执行mvn -Pdist -f modules/master/pom.xml clean install

      jars/目录下面,生成了依赖的jar包, pack/ 目录下面 tigase-server-5.2.1-b-dist-max.tar.gz和tigase-server-5.2.1-b-dist.tar.gz,(一个多功能版本,一个是简版)。  

  d) 执行

./scripts/installer-prepare.sh
./scripts/installer-generate.sh


  成功执行之后,pack/目录下面,有个tigase-server-5.2.1-b.jar,这个就是最后的安装包了。

可以参考http://fshuanglan.blog.51cto.com/133806/1369802,来进行安装。

© 著作权归作者所有

共有 人打赏支持
李云风
粉丝 5
博文 26
码字总数 10105
作品 0
杭州
技术主管
私信 提问
Android Push开源解决方案

在 Android 上,因为 Google 自己实现的 Android 标配的 GCM (Google Cloud Messaging,原来叫 C2DM) 在国内基本不可用,所以,对于开发者来说,如果需要 Push功能,怎么样选择成为了一个问题...

雨焰
2012/10/23
0
4
Android Push 开源方案解析

在 Android 上,因为 Google 自己实现的 Android 标配的 GCM (Google Cloud Messaging,原来叫 C2DM) 在国内基本不可用,所以,对于开发者来说,如果需要 Push功能,怎么样选择成为了一个问题...

极光推送
2012/11/30
5.8K
85
Tigase XMPP Server源码部署

1相关文档 Tigase官网:http://www.tigase.org 开发指南:http://www.tigase.org/devel-guide Eclipse下部署Tigase源码:Hack Tigase Jabber/XMPP Server in Eclipse Tigase5.2版本以后使用了......

蛙牛
2014/04/29
0
1
请教tigase-message-archive怎么放到tigase-server里面去

@GREKI 你好,想跟你请教个问题: 我在myeclipse里面已经导入了tigase-server的源码项目,请问怎么把tigase-message-archiving集成到tigase-server里面去?...

coder-成长
2015/06/02
478
5
eclipse部署tigase源码

1 下载tigase源码一份 要用git下载,下载地址:git clone https://svn.tigase.org/git/tigase-server.git 2 通过eclipse的import引入maven项目(tigase源码是maven项目) 3 配置启动项 Main...

今幕明
2014/04/29
0
2

没有更多内容

加载失败,请刷新页面

加载更多

Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
3
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
2
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
1
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
3
0
跟我学Spring Cloud(Finchley版)-15-Hystrix监控详解

Hystrix提供了监控Hystrix Command的能力,本节来详细探讨。 监控端点与数据 应用整合Hystrix,同时应用包含spring-boot-starter-actuator 依赖,就会存在一个/actuator/hystrix.stream 端点...

周立_ITMuch
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部