默认
发表评论 9
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
关于最近接受了一个聊天项目,但是不知道用什么好
阅读(47788) | 评论(9 收藏 淘帖
由于是银行项目所以考虑到安全性,所以要用vpn并且要与互联网隔离,又考虑到银行资金比较吝啬,用三方的成本又很高,所以排除了环信之类的三方服务,所以就想找个开源的吧,开源的呢XMPP维护起来是很烦,比如说苏宁的豆芽项目,就是用的XMPP做的,问题特别多,维护起来很麻烦,维护的成本也高,MINA的话,有百分之50的信息会丢失,导致了项目难以实施,直接还没给尾款就死了,这个是之前遇到的情况,所以也只能排除,我有想到伪IM,就是客户端每隔一段时间给服务端进行HTTP请求这个是心跳包,如果服务端有数据就返回没数据就返回简单的数据,完全使用HTTP操作,不过这个不是一个极好的解决方式,到底用什么比较合理呢

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:即时通讯安全篇(三):常用加解密算法与通讯安全讲解下一篇:IM中用户重复登陆判断的问题怎么实现好?
推荐方案
评论 9
能否回答我几个问题,我再帮你参谋一下:
1)这个项目最终的质量要求是什么样的?
    这决定了技术的实现代价(到底是认真实现一个,还是随便弄弄就行了)。
2)最终上线后,平稳运行阶段的用户并发量大概有多少?
    这决定了整个架构要整多大动静。
3)需要支持哪些端?仅移动端?还是PC+移动端?或者是仅PC端?
    这将决定了整体方案的技术选型。
4)考虑到要进行网络隔离,手机上使用VPN后,移动情况下的网络质量怎么样?有没有做过测试?
    这决定了所选的方案对移动端整体来说实际体验和可行性有多大。网络测试的话,可以用论坛里的这个ping工具做一个客观全面的测试:http://www.52im.net/thread-145-1-1.html
客户方面的话,应该是android平板加pc端,算是想认真的去做一个吧,但是公司的项目主要是外包,这个外包必须要考虑到项目人员工时的成本问题,所以我个人认为能用第三方尽量用,不然维护起来的成本太大,用户数量大概500人左右,因为是一个县级市级别的银行,所以数量上可以有很好的控制,
关于vpn的移动环境,是这样的。客户可能购买一个账户这个账户应该只能有100个用户共存,如果超过这个数量,就要把其中的一个用户踢掉,然后让其他用户进来,还有用户如果操作之间有3分钟无数据请求的话,也会造成把其中一个用户踢掉,基本上是结合这两个情况来踢人的,这要就导致了,客户那边经常说网络断开,请求不上去的情况
对于网络环境来说我们这里也是智能监控当前的Vpn是否断掉,或者利用心跳机制,作为双保险,
这个是我们之前的项目里面碰到的情况,新的项目可能会遇到这种情况
签名: 17 小时前 (Lv9)以坛为家II
引用:JackJiang 发表于 2016-04-13 16:25
能否回答我几个问题,我再帮你参谋一下:
1)这个项目最终的质量要求是什么样的?
    这决定了技术的实 ...

客户方面的话,应该是android平板加pc端,算是想认真的去做一个吧,但是公司的项目主要是外包,这个外包必须要考虑到项目人员工时的成本问题,所以我个人认为能用第三方尽量用,不然维护起来的成本太大,用户数量大概500人左右,因为是一个县级市级别的银行,所以数量上可以有很好的控制,
关于vpn的移动环境,是这样的。客户可能购买一个账户这个账户应该只能有100个用户共存,如果超过这个数量,就要把其中的一个用户踢掉,然后让其他用户进来,还有用户如果操作之间有3分钟无数据请求的话,也会造成把其中一个用户踢掉,基本上是结合这两个情况来踢人的,这要就导致了,客户那边经常说网络断开,请求不上去的情况
对于网络环境来说我们这里也是智能监控当前的Vpn是否断掉,或者利用心跳机制,作为双保险,
这个是我们之前的项目里面碰到的情况,新的项目可能会遇到这种情况
签名: 17 小时前 (Lv9)以坛为家II
从你的回答来看,网络状态应该会非常糟糕,移动网络本身的可靠性问题加上VPN的蛋疼问题,在协议上来说如果用TCP这样的省力实现,后面的体验可能会很糟糕,说不定要走弯路。

从技术选型来看,你这个场景属于特殊情况,不能参考一般实现,所以无论选哪种技术,你必须要有完全的掌控能力,不源出了什么问题完全都想不明白,而且可以想象,这些客观条件让项目从技术上来说肯定会遇到很多问题,如果不能果断、准确地处理好,那么到最后项目就死定了。
我建议你好好评估一下MobileIMSDK,因为MobileIMSDK设计之初为何费时费力选型UDP的原因,就是为了当时我自已的产品能运行在跨国网络环境下,而这样的环境网络状况非常糟糕,通常国内的应用体验是网络延迟在30毫秒左右,而跨国情况下可以达到250毫秒以上,是10倍的延迟,这种情况下如果使用TCP这样的协议,基于它的丢包重传和指数退避策略,最后的用户体验,将是至命。
这是基于MibileIMSDK的产品,当时的运营情况,可以看到是遍布全世界的用户:http://www.52im.net/thread-21-1-1.html

有极差的网络情况下,体验依然可以接受。你可以去体验一下RainbowChat:http://www.52im.net/forum-90-1.html,比如坐地铁或一些网络比较烂的情况下,看看它的表现。
引用:JackJiang 发表于 2016-04-13 16:43
从你的回答来看,网络状态应该会非常糟糕,移动网络本身的可靠性问题加上VPN的蛋疼问题,在协议上来说如果 ...

所以一直在寻找一个可靠的开源项目,直接放进去,不然的话,真可能会搞死了,
今天客户给我说了一个比较让他头疼的问题,就是新加了一些功能,导致了客户端新的功能不能用,老版本的功能也不能用,怎么办。哎,改啊,最终排除了客户端方面的问题,是服务端的问题,问题是“客户在部署环境完成以后,没有对服务器进行重启”。:L:L:L:L:L:L:L:L:L:L:L:L:L:L:L
签名: 17 小时前 (Lv9)以坛为家II
引用:疯华整猫 发表于 2016-04-13 16:48
所以一直在寻找一个可靠的开源项目,直接放进去,不然的话,真可能会搞死了,
今天客户给我说了一个比较 ...

你上面说的这样的IM项目,没个15万打底,最后可能会亏死。
不知道具体功能有哪些,如果是个全功能IM,那项目预算一定得要多一点。

你上面说的用http做伪IM,还是先别考虑了,不然白白浪费自已的时间,后面的体验在网络的不好的情况,那http请求真没法让人用户活。

还有,你说的MINA写的框架会有50%的包丢失,这不可能吧,是否是你们业务层代码的问题,MobileIMSDK就是用MINA写的,挺可靠的,甚至在用UDP的情况下,加上我写的QoS算法后,都不存在莫名的消息黑洞情况发生。
XMPP在移动端真是臭名昭著啊,我这样说,没人有打我脸吧
签名: 星期六,那又怎样,还是得上班
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部