Android+Smack+Openfire

我的本意是做一个Android端聊天软件,出于兴趣,同时也希望在这个过程中能有所收获。

整个过程是这样的:
一.搭建环境
1.server端:
1.1安装openfire 。
在百度搜索openfire,进入官网后我选择了最新版本。安装过程无须赘述。
1.2开始运行。
报错了,具体的现象有些记不清,大概是无法开启服务,貌似是因为我没有安装jdk,于是安装jdk,之后可以开启服务。
1.3配置服务端。
我几乎都是选择默认选项。

2.Client端:
2.1 依赖。
IDE 是 android studio。需要添加smack依赖。最初我并不知道需要添加什么依赖,在smack的github上没找到官方的文档,于是各种search,总之最后如下:

    compile 'org.igniterealtime.smack:smack-tcp:4.1.4'
    // Optional for XMPP-IM (RFC 6121) support (Roster, Threaded Chats, …)
    compile 'org.igniterealtime.smack:smack-im:4.1.4'
    // Optional for XMPP extensions support
    compile 'org.igniterealtime.smack:smack-android-extensions:4.1.4'
    compile 'org.igniterealtime.smack:smack-experimental:4.1.4'
    compile 'org.igniterealtime.smack:smack-core:4.1.4'

目前还没遇到由于依赖引起的问题。and 关于各个依赖具体负责什么事情,我并不知晓,只能望文生义的大致猜测一下。

二.开发
1.UI
不是重点,暂不叙述。
2.基本功能点
这个是重点,首先考虑的就是最基本的功能,无外乎 注册、登陆、根据条件搜索用户、加好友、删除好友……and so on
基本是API的使用。也许是阅读能力&搜索能力 差,我始终没有找到相对完善的文档来引导我去了解smack在client中要如何使用,基本是点开源码阅读注释+百度+Google……。这样效率蛮低的。
3.其他功能
暂时没有规划。

*目前遇到的值得注意的问题
1.注册的时候,我不知道如何判断用户名是否存在。这个问题暂时没有fix。网上的demo中使用的smack版本基本较旧,实现了相关功能,但其所使用的api已经不能再4.1.4中使用。

2.search 功能。还是老问题,我并不知道如何搜索,虽然阅读源码后我知道有个类似SearchManager的类,但仍然不知从何下手,后来通过搜索,参照别人我写了一个方法,根据username搜索用户,报错,具体错误log已经遗失,大概是说无法连接remote 服务,让我十分苦恼,真的不知道哪里做得不对,后来我在openfire 上偶然发现 server是可以安装各种插件的,果然list下面有个插件叫做“search”,安装以后search服务有了结果,可以正常返回搜索到的用户list。
这里写图片描述


我觉得给造成困扰的这些问题,都是一个问题:没有找到并阅读文档,光看源码真是一头雾水。

项目Github链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值