android im方案,Android中开发IM即时通讯功能的方案

最近准备做IM功能,在技术预研当中,其实可行方案还是比较多的,就看怎么选了

这里有必要普及一下xmpp是个什么东西?

引用某娘的定义:

XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。

网络结构:

XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。

功能:

传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。

一句话总结就是一个可以用于IM功能的协议,传输的是xml数据

移动端IM大概有以下这些方案,但不仅于这些

1.第三方平台

比如环信,融云,leancloud,容联云等等。直接使用sdk就可以实现了,最简单最直接,而且稳定性已经不错了,连UI界面都带有了,可以自行修改,缺点是要收费,比如环信日活跃用户30万以上开始收费,融云基础功能不收费,VIP级别的功能要收费。如果让我选应该会在环信和融云之间选,环信的话一个是市场占有率比较大,二个是技术客服基本都能找到在线的,融云客服的话需要像写邮件一样找技术解决问题,不是在线的交流,我觉得挺不好的,融云的demo倒是做得比环信好看,环信的看上去很粗糙的感觉。据使用过的朋友反馈融云sdk比较好接入,环信稍微麻烦点,使用的时候都会有一些坑的地方要处理。

2.Spark+smack+openfire套餐

安卓使用asmack,测试使用spark,服务器使用openfire。asmack可以说是smack的Android平台的支持版提供xmpp协议的实现,就是一些个api,spark就是一个可以用来在pc相互同信的客户端,openfire部署也比较简单,next,next就差不多了。这套方案还算比较成熟的了,当然没有第三方的方便,工作量也增多了,这套也是基于xmpp协议同时也就有xmpp协议的一些缺点。

3.使用第三方推送的sdk

利用推送的及时性来做im也是可以的,推送也不收费吧。

4.Socket长链接

socket大家都懂了的,感觉做个小东西还可以,但是正真商用要做的处理还是挺多的,网络优化,稳定性等等。

5.基于xmpp自己做

xmpp协议本来就是可以坐im功能的,据了解环信就是自己基于xmpp来做的,50人上下的团队14年开始做的,现在两年左右已经融了两三轮资了。不过xmpp基于xml,冗长直接导致费流量费电,特别是移动端,可以考虑在传输的时候自己加一层二进制协议,如果环信真是xmpp来做应该也会在这方面做优化的。还有mqtt,sip等协议也是可以自己做。如果im不是核心功能不推荐自己做,费时费力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值