tigase开发过程记要

tigase开发过程记要

tigase开发过程记录

  经历了将近两个星期的tigase开发,我的完成情况还是一头雾水。

  无奈tigase用的人很少,而且可参考资料很少,有问题百度,google基本帮不到什么。只能自己一边看源码一边单步调试。

  说在前头:博文不权威,坑爹不负责,废话不多说,要坑一起坑。

  公司项目要求是,android和ios的线上交流,以及服务端对android还有ios的推送功能。因此选择tigase。

  首先安装tigase,我选择先装在本地,跑通之后再发布到linux上面。官网http://www.tigase.org/ 坑爹的是tigase server下载不在download中。后来找到在这边https://projects.tigase.org/projects/tigase-server/files。

  我选择最简单的gui安装(原因直观),这里提一下,选择*.jar文件,在cmd底下用java -jar命令进行执行,然后就可以到安装页面,各种下一步。

  选择我数据库是mysql,安装的时候简单配置一下就行了,安装过程这个在度娘上面搜索了一下,还是有的。

  然后tigse会在mysql下创建几张表。

tigase开发过程记要

  通过Run.bat脚本文件,启动发现报了好多错。

  因此选择将源码导入到eclipse中,进行调试。

  tigase开发过程记要

  debug的之前别忘了看一下脚本文件是怎么写的,别忘了启动参数。

  启动之后,又是报错,由于第一次搞源码,没什么经验。因此果断放弃5.2.0。使用5.1.5,进行调试。

  同样的步骤,和上面一样,只不过mysql创建的表少了好多。完美跑通,没有任何问题。

  开始xmpp客户端开发(这时候的目的是让ios程序以及android程序可以进行通信)

  客户端问题不多,不过有一些诡异的地方提一下。

1.连接服务器,服务名称是区分大小写的(配置文件中是大写,不过调试的时候,发现需要输入小写)。

2.连接名称不需要全名,也就是tigase字段中的jid字段,比如你的名字叫lalal@dong,在xmpp登陆的方法中,用户名输入lalal就可以了。

3.android开发需要额外的jar包,貌似叫asmack(java我是用smack的jar包完成开发的)

  android问题不多,搞定,ios那边随便找了一篇文章。搞ios的一会儿也跑通,ios和android可以通话。搞定。

  接下来是推送问题,问题关键处在了这里,我们不可能通过smack单点for循环所有的用户,进行发送,当然这样也可以发,不过,效果不好。

  定的思路是这样的,用pub/sub,运用发布订阅功能。当用户注册我们产品的时候,给他在tigase中创建一个账号,然后,默认他订阅admin的节点。

  tigase的pub/sub功能是类似于插件形式进行调用的。

  tigase开发过程记要

  链接 :https://projects.tigase.org/projects/tigase-pubsub/wiki/Ad-hoc_commands

  简单的意思就是说把这么目录下的脚本复制到pubsub中就可以了,这时候源码需要一些额外的jar包 groovy的jar包(tigase是用groovy脚本的) 还有pub/sub的包 https://projects.tigase.org/projects/tigase-pubsub/files

  加载的时候就会报错

tigase开发过程记要

  我看了一下脚本的源码,是调用一个静态的内部类,初步感觉是外部类不可以这么调用,后来自己写了一个例子还是可以调用的。

  随后我就怀疑代码的不匹配。果然,我下载的pub/sub的jar包,有问题。上官网一看,有好多的源码版本啊。随后我想,既然你jar包有问题,依然是老办法解决,下载其他的源码,然后运行,可是坑爹的是,突然发现下载的源码与5.1.5不匹配。

  中午休息一下,下午开始搞5.2.0。

  PS:提一下,我不知道是我用git方法不对,还是tigase的官网有问题,我从tigase官网通过url下来的是几个没用的文件。

  最后,喜欢讨论的技术的宅男可以加一下我的微博,并留言,大家一起讨论,要坑一起坑。 http://www.weibo.com/u/2170459490/home。