即时通讯之路——技术选型
来源:互联网 发布:骑马与砍杀领主数据 编辑:程序博客网 时间:2024/05/18 10:33
因为项目的需要,需要在产品中内嵌即时通讯和消息提醒这个功能。前期的调研过程中看了蛮多的产品,看过环信和openfire,甚至包括androidpn。因为是android出身,所以对即时通讯这个模块尤为感兴趣。
openfire这个东西是一个很不错的东西,起码可以让你在前期就能很快的拥有即时通讯模块。详细看了下文档,发现openfire用的协议是古老的xmpp协议。在这个json横行的时代,xmpp显得其太古老了,而且最大的问题是传输的数据量太大。openfire的核心是mina。据我说知,mina和netty都是由一个作者。作者也是看到了mina存在的缺陷,使得其重新开发了一个netty。复杂的通讯过程使得性能大大降低,在后期的插件维护上也是大费心思,所以我打算自己舍弃openfire这个东西。自己去定义一套完全属于自己的即时通讯系统。
协议的选择是很重要的,这个东西关系到整个系统的复杂度,和通讯过程中的性能问题。再此特意去研究了下腾讯的协议。腾讯的协议是基于ActiveSync的修改版,取名叫同步协议Sync流程如下:
1、发送消息方告诉服务器有新消息
2、服务器方接收发送消息方数据
3、服务器告诉消息接收方有新数据要接收
4、接收方取得服务器端数据
5、接收方告诉服务器数据已经拿到,消息可以作废
复杂的协议,我是这样通俗的去认为的,腾讯微信大体就是这样的一个协议,其中加入了token令牌去确保数据的安全性。
在技术上,无可厚非的选择了netty这个东西,用springmvc,spring 和mybatis做整个系统的基础框架。用redis去做sesion集群管理,使得每个用户id和session确保对应。使用阿里的dubbo服务化治理框架实现soa化。选择activemq高速队列做整流作用。
感兴趣的朋友可以联系我,一起去做这件事情,欢迎加入QQ群302633408 或者联系我的QQ329790217
- 即时通讯之路——技术选型
- 打怪升级之路——分布式实践之技术选型。
- 即时通讯——P2P传输技术详解
- 即时通讯协议设计选型
- 自己动手搭建ava通用开发框架之二—后台页面技术选型
- 环信即时通讯云技术博客——P2P实时音视频之NAT穿越
- 集团信息化之路—人力资源管理软件选型二三事
- 电源管理之——battery选型
- 后台管理框架之二:技术选型
- DCOS之监控技术选型(中)
- 移动IM开发之技术选型
- 容器网络之方法论和技术选型
- HTTP 代理服务器技术选型之旅
- 续——冯大辉谈技术性创业团队的技术选型
- 技术选型(一)——安卓开发
- 技术选型——混编APP应用概述
- 技术选型
- 技术选型
- mysql基础理论之存储引擎概念
- Oracle问题
- xmpp的一些常识
- 判断URL是否合法
- Word Search
- 即时通讯之路——技术选型
- 12.非线性转换
- Android : 使用 fastboot 解锁安卓手机
- 恩布企业IM PC端 1.15 更新,聊天窗口合并, P2P点对点视频
- iOS UDID VS UUID(GUID)
- 使用API创建销售订单
- 文章标题
- 手机APP UI设计尺寸基础知识
- 和《超能陆战队》中“大白”硬扯上的关系的职场哲学