tigase和openfire有异曲同工之意,主要是实现IM的及时通信,和实现服务端向手机客户端实现消息推送的服务。但是tigase在测试实验中表现了良好的性能,单机状态下支持50万的并发。
本例采用的是源码安装,并且是采用当前最新版本的安装,先介绍下本机的环境,mac,java1.8,mysql5.7,git环境,tigase7.2.0
git环境是mac的默认环境,可以自己制定一个工作空间来clone项目,本例使用的地址是:git clone https://repository.tigase.org/git/tigase-server.git
然后进入到执行目录: cd tigase-server/
将依赖的jar包和当前项目编译并安装到本地仓库:mvn install
将源码导入到eclispe中,inport->exists maven project->tigase-server->finish
该过程会比较漫长,要下载对应的依赖和整合maven项目
修改对应的参数,在/etc/init-mysql.properties文件中修改配置内容如下:
--debug = server
--test = false
--virt-hosts = 10.16.87.44
admins = [ 'admin@10.16.87.44' ]
config-type = '--gen-config-def'
dataSource {
default {
uri = 'jdbc:mysql://localhost/tigasedb?user=tigase&password=tigase&useUnicode=true&characterEncoding=UTF-8&autoCreateUser=true'
}
}
http (class: tigase.http.HttpMessageReceiver) {}
/etc/tigase.conf中的环境变量
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home"
此时执行mysql数据库的初始化操作,在数据目录tigase-server/中,下面有一个文件夹scripts
执行安装mysql数据库的命令:./scripts/db-create-mysql.sh tigase tigase tigasedb root root localhost
对于执行的参数解释:第一个tigase是用户名,第二个tigase是密码,tigasedb是数据库,第一个root是管理员用户名,第二个root是管理员密码,localhost是数据库地址。
如果一切正常会执行成功,我操作是报的错误是:
Press [Enter] key to start, otherwise abort...
错误: 找不到或无法加载主类 tigase.util.DBSchemaLoader
错误: 找不到或无法加载主类 tigase.util.DBSchemaLoader
查看db-create-mysql.sh的脚本,发现最后几行有一段执行命令如下:
java -cp "jars/*" tigase.util.DBSchemaLoader -dbHostname ${DB_HOST} -dbType ${DB_TYPE} -schemaVersion ${VERSION} -dbName ${DB_NAME} -rootUser ${ROOT_NAME} -rootPass ${ROOT_PASS} -dbUser ${USER_NAME} -dbPass ${USER_PASS} -logLevel ALL
java -cp "jars/*" tigase.util.DBSchemaLoader -dbHostname ${DB_HOST} -dbType ${DB_TYPE} -schemaVersion ${VERSION} -dbName ${DB_NAME} -rootUser ${ROOT_NAME} -rootPass ${ROOT_PASS} -dbUser ${USER_NAME} -dbPass ${USER_PASS} -logLevel ALL -file database/${DB_TYPE}-pubsub-schema-3.0.0.sql
java -cp的命令,并且执行的jar是在jars/*的jar报,此时将maven编译的本地仓库中的
tigase-server-7.2.0-SNAPSHOT.jar拷贝的jars/路径中。
./scripts/db-create-mysql.sh tigase tigase tigasedb root root localhost
一切正常。
eclipse启动项目:
run Configuartion
填写的地方主要是两个:
main的页签中填写
project是选择:tigase-server
main class选择的是:tigase.server.XMPPServer
arguments页签中
program arguments中填写:--property-file etc/init-mysql.properties
vm arguments中填写:-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
-Djdbc.drivers=com.mysql.jdbc.Driver:org.postgresql.Driver:org.apache.derby.jdbc.EmbeddedDriver
-server -Xms100M -Xmx200M -XX:PermSize=32m -XX:MaxPermSize=256m -XX:MaxDirectMemorySize=128m
ok,apply,运行程序,一切正常。