茉莉网

ios im 即时通信 一套简洁的即时通信(IM)系统

2017年08月28日 来源:ios im 即时通信 大字体小字体

  上面设计到了一个模块图中没有的概念:msgcache,之所以没有绘制出来,是因为msgcache的大小是可预估的,假设msgchatserver的服务人数是40000人,消息发送频率是1条/s,消息的生命周期是4hour,消息长度是1kB。,那么这个cache大小=1k*4*3600*40000=576000000kB,这个数字可能有点恐怖,如果是真实商业环境这个数字只会更小。其本质是一个hashtable。

  快牙全球用户已超过4.5亿,遍及200个国家和地区,被用户称为“怪兽级传输神器”。快牙的创建链接群和好友即时聊天就是集成的环信服务。

  解决了心跳时长问题,再来看看具体的心跳流程:

  在介绍消息发送流程之前,先介绍一些基本概念。

使用QT开发即时通信IM的喟叹 QT开发

  这是我的毕业设计。刚开始确定这个课题的时候是因为以前有稍微研究过一些XMPP协议,在这个基础上做起来应该不难。然后开始选技术的时候还有半年,我想为什么不从更底层做起呢!那就不用XMPP,当时接触过相关的即时通讯技术还有WebSocket,那为什么直接从更底层的Socket开始封装呢服务端就用Go语言吧,用来做IM服务器和HTTP服务器都很好。

安司密盾 为IM即时通信软件提供网银级的安全

  注意上图与本文一些名词的用法不同,它的所谓的“离线消息”,咱本文中被称为"未读消息"。

  这个流程牵涉到一个比较重要的模块:Counter,这个模块其实都可以用Redis充当,怎么做你自己想^_^。

  无论是producer还是consumer,每个具体单位都要由系统分配给一个id,称之为UIN[名词来源于icq]。

羽翼邮webmail即时通信IM系统 移动学院

  这个问题会让很多移动开发者头疼许久,最基本的要根据网络环境来设计不同的心跳时长:譬如有线环境把频率设置为10s,wifi环境下这个频率设计为30s,在2G环境下设置为4分钟,在3G或者4G环境下设置为1.5分钟。

  上述的消息发送流程中,msgchatserver把分配的msgid的消息返回给producer后,还要继续进行消息的投递。消息的投递涉及到一系列的技巧,涉及到消息的订阅者能否不重不漏地在消息还“活着”的消息,这些技巧其实也没什么神秘之处,下面的流程会详细地描述到。

  还有一个问题,如果消息超过服务端规定的短文本消息的最大长度怎么办?

  消息投递,顾名思义,就是消息的下发而已,有人美其名曰消息Push流程。

  如果说消息的发送=msgreq+msgack,那么消息的投递就简单多了:

  长文本如果能借用第二种方法处理,发送图片是不是也可以这么干?其本质都是数据嘛,语音和视频数据的处理亦不外乎如是。

  至于Router具体的构造,第四章节会叙述到。

企业即时通信软件最新排名

  随着本章节的结束,IM的主要流程就描述完毕,更详细的流程请参考文档3、4和5。

  协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已经出现过的IM协议包括:IETF的对话初始协议(SIP)和即时通讯对话初始协议和表示扩展协议(SIMPLE)、应用交换协议(APEX)、显示和即时通讯协议(PRIM)及基于XML且开放的可扩展通讯和表示协议(XMPP)协议(常称为Jabber协议)

  听说Redis最近要添加BloomFilter,那就更好玩了,关键就看其能否应对删除操作,如果有删除接口,把它当做bitmap玩玩倒也无妨。

【开源下载】基于TCP网络通信的即时聊天系统

  一个消息系统,从宏观上来说,就是一个PUB/SUB系统,有消息生成者publisher[orproducer],有消息中转者broker,有消息处理者msgserver,以及消息消息者subscriber[orconsumer]。消息消费者可以是一个人,也可以是一群人,在pub/sub系统之中producer&consumer一起构成了一个channel,或者称之为room,或者称之为group。

【开源下载】基于TCP网络通信的即时聊天系统

  其实结合第4章节以及本章节,用流行的术语来说,消息的下发就是微信所谓的"是参考Activesyec,SYNC协议"[参考文档7]流程,江湖人称推拉相结合的过程。这个过程可以借用参考文档2中给出的一副流程图做参考:

【开源下载】基于TCP网络通信的即时聊天系统

2005即时通讯软件年度横向评测上 正式版

相关内容

编辑精选

Copyright © 2015 茉莉网 http://www.szmlwh.cn. All rights reserved.