开源XMPP客户端,老外的代码真是看不懂

2,938 阅读2分钟

前言

一直想做一款自己的即使通信APP,加一些特有的功能,用来和家人通信,但是还真不好搞,在尝试用Socket时,最大问题就是保证消息可靠不丢,重发等基本即时通信该有的东西,后来选择开源实现,也就是XMPP,服务端采用openfire,还有smack,但是smack的类库不是很熟悉,在直接开发时候导致离线后消息丢失,当然我也去尝试解决这个问题,得到的解决方法是先设置离线状态,然后使用离线消息管理器去拉取取消息,但也无济于事,然后想想算了,继续找基于XMPP开源的APP吧。

gitee、github搜了半天,可能关键字不对,搜到的都不符合我心意,虽然在gitee上有一个,但是看那个感觉不靠谱,后来去google play上找了一番,还真是多的数不甚数,然后下载了十几个基于XMPP的APP,这些都可以指定服务器,也就是自己搭建好openfire,然后APP中设置openfire的地址就可以,而且这些大部分都是开源的,最终选择了Conversations。

在这里插入图片描述

测试了一下,离线消息也没问题,发送状态也有,界面也比较干净,就选择他了。

导入源码后懵逼

下载源码后导入在AndroidStudio中,是一脸懵逼,小小的东西居然写了这么多东西,如果要修改的话,还真的好好研究几天。

在这里插入图片描述

启动openfire

当然要真正做到即时通信,XMPP服务是少不了的,对比来对比去,选择了openfire,在官网下载后进入bin目录,执行./openfire run就行,或者是./openfire start,区别是一个在当前终端运行,start是后台运行,如果要终止的话,使用./openfire stop命令,但是使用run,想要关闭时,直接ctrl+c就行,start通常在服务器上部署时候使用。 在这里插入图片描述

还需要进入控制台进行初始化,这里就不说了。

在这里插入图片描述

然后在Conversations指定另个一好友的XMPP地址,就可以发起对话了。 在这里插入图片描述

在这里插入图片描述

关于音视频通话,可以集成jitsi Meet,有点难度,后续我集成了再说吧。

关注一下吧

带给你不一样的文章