如何搭建一个自己的IM即时通讯聊天软件?


InstantMessaging(即时通讯、实时传讯)的缩写是IM,这是一种可以让使用者在网络上建立某种私人聊天室(chatroom)的实时通讯服务。目前在互联网上受欢迎的即时通讯软件包括QQ、百度HI、新浪UC、MSN Messenger等。 软件定义    ?? IM InstantMessaging(即时通讯、实时传讯)的缩写是IM,这是一种可以让使用者在网络上建立某种私人聊天室(chatroom)的实时通讯服务。大部分的即时通讯服务提供了状态信息的特性──显示联络人名单,联络人是否在线及能否与联络人交谈。目前在互联网上受欢迎的即时通讯软件包括QQ、MSN Messenger(Windows Live   通常IM服务会在使用者通话清单(类似电话簿)上的某人连上IM时发出讯息通知使用者,使用者便可据此与此人透过互联网开始进行实时的通讯。除了文字外,在频宽充足的前提下,大部分IM服务事实上也提供视讯通讯的能力。实时传讯与电子邮件最大的不同在于不用等候,不需要每隔两分钟就按一次“传送与接收”,只要两个人都同时在线,就能像多媒体电话一样,传送文字、档案、声音、影像给对方,只要有网络, ?? IM相关调查 无论对方在天涯海角,或是双方隔得多远都没有距离。 互联网的历史总显得具有不可思议的戏剧性:1996年,4位以色列人发明了IM的鼻祖——ICQ“坏小子”,那时它只是一个主要搞网上寻呼的“小玩意”;1998年,腾讯研发团队为QQ用户突破100人而“兴奋不已”;2000年前后,业内传马化腾打算把QQ作价100万卖给深圳电信,但深圳电信却不要。到2005年腾讯却成为中国收入前三名的互联网公司,而与腾讯一样做即时通讯的朗玛UC,依靠市场份额和用户数排名第二的优势,被新浪收购后换来了3600万美元的现金和股票。 编辑本段 中国IM软件发展史   说起中国即时通讯的历史,不得不提马化腾,这个戴着眼镜、温文尔雅的年轻人。1998年的腾讯创始人马化腾还是个睡沙发、吃盒饭的总裁,当他与另两个“元老”一起挤在深圳赛格科技园4楼一间几十平方米的小厂房办公时,他的名片上甚至从来都不敢印“总经理”的头衔,而只印着“工程师”字样——马化腾当时的惟一期望,只是公司能生存下来;他更没想到仅5年之后,他因此就一夜之间成了身价8亿港元的富豪。 ?? 聊天其实一直是网民们上网的主要活动之一,只不过,当时网上聊天的主要工具只有聊天室。即时通讯的出现并不像后来所描写的“很自然地崛起”,出身于著名寻呼企业润讯的马化腾最初做的只是与寻呼业相关的ICQ软件。只是当电信寻呼、联通寻呼、润迅寻呼等大寻呼企业都用上了这种网络寻呼机,给马化腾他们赚来了第一桶金后,腾讯才瞄上了在国外正热的互联网产业。1999年,腾讯正式提供互联网的即时通讯服务。   其实新浪在这个领域也可以说是先行者,早在1999年,新浪就推出了一款IM工具叫Sinapager,当时这款工具的功能应该说已经很强大了,比腾讯的QQ毫不逊色,而且当时用户群并不少。只是新浪当时没有那么专注于IM领域上。   从前,并没有多少人认为即时通讯会有多大出路,因为这种需要随时在网上的聊天工具一直受制于互联网的拨号上网。这导致QQ用户数一增加就要不断扩充服务器,马化腾甚至都坚持不下去了,一度决定将QQ卖掉。只是买家深圳电信数据局准备出60万元,而马化腾坚持要卖100万元,最终因为价格无法达成一致,最终谈判告终。   但是,当马化腾在2003年第一次进入“福布斯中国富豪榜”第九十九名,腾讯宣布QQ同时在线人数达到492万,这个互联网业开始为即时通讯沸腾。   先是网易开始发力,在北京推出了新版的即时通讯软件网易泡泡2004;然后是新浪花3600万美元收购已有巨大用户群的UC,加上搜狐在2004年初推出的即时通讯软件“搜Q”的奋力一搏,以及微软的MSN也进入中国插一脚。门户网站们显然希望能够通过自己长久以来累积的用户忠诚度在该领域有所作为。一时之间,即时通讯与搜索引擎一起,成了最热门的互联网领域。以至于在即时通讯软件上做一些插件的增值服务公司也层出不穷。 ?? IMQQ 客观上来说电信运营商对带宽投入的大幅增长导致互联网的更普及是即时通讯繁荣的物质基础;而几个门户网站纷纷选择发力即时通讯市场,不仅仅是简单地给自己补课,更是促进了即时通讯的普及。   “中国即时通讯市场将发生翻天覆地的变化,当然并不是说谁可以把QQ干掉,QQ依然会占领很大的市场份额,但是绝对不是像现在这样的一家独大的垄断性份额。我认为这个时间很快就会来临,或许就在今年底或明年。”前雅虎中国总裁周鸿祎曾如此充满期望。   2005年E

.支持联系人状态(在线、离开、离线、忙碌、电话、会议…) .支持会话 .支持邀请多人会话 .支持表情图标 .支持字体与颜色 .支持截图发送 .支持点对点文件发送(Internet上平均传输文件为60KB/秒) .支持点对点文件断点续传 .支持语音交流 .支持视频交流 .查找好友 .显示商务好友信息 .支持消息广播 .留言消息提醒,对方不在线情况下可以留言,对方上线时得到留言提醒 .自定义群组 .自定义个人档案信息 .支持多人语音视频会议 .支持服务器Linux\Win08 历史信息管理 通讯记录,查看历史聊天记录和文件发送接收记录 短信中心 1)一对一手机短信发送(中国移动、中国联通手机) 2)手机短信群发(中国移动、中国联通手机) Web客户端 内嵌Web网页浏览 语言版本 1)支持简体中文操作界面,包括客户端和服务端 2)支持英文操作界面,包括客户端和服务端 应用领域: 1. 高稳定性,高负载大用户量在线即时通信环境。 2. 面向高端商务,商贸,音乐娱乐各行业门户网站。 3. P2P 互动游戏数据交换. 4. 已有会员整合,"一站式" 服务应用领域。 5. 远程教学,医疗咨询,企业文件传输与管理,视频监控,网络电话等应用。 6. 和企业已有软件项目结合(ERP\CRM\SCM) 已经使用的企业: 上海XXX多媒体技术有限公司、上海XX传媒广告有限、上海XXX网络科技有限公司、青岛XXX软件科技有限公司、外X网、上海XXX服饰有限公司、 广州X打折网 、广州X下载网、北京X房产网、北京X龙旅游信息技术有限公司、北京X网络有限公司... 通讯协议: 1)底层通讯基于TCP/IP协议。 2)文件传输基于UDP协议。Internet中传输文件速度与QQ相当,内网传输文件最快,比QQ快点。 3)客户端之间消息交换基于P2P技术(点对点) 4)应用网络地址转换(NAT)技术,局域网和Internet之间自由通讯. 5)穿透防火墙技术. [找出目标进程] [找出SOCKET句柄] [用DuplicateHandle()函数将其SOCKET转换为能被自己使用] [用转换后的SOCKET进行数据传输] 服务端主要用于用户基本信息、在线状态、组织结构的信息保存。 不参与客户之间的信息交换(类似BT),服务器可以为分布式集群,如果数据库为SQL SERVER 2000以上版本可以使用故障转移(负载均衡)大大增强服务端的并发和负载,服务端用户登录数并发为1秒300。 服务器负载说明: 注册用户数量设计上是没有限制的,单服务器情况下允许同时在线用户100000以上。

系统设计经典题:手把手教你搭建一个IM(即时通讯) 系统

OICQ这款聊天工具不知大家是否熟悉,1999年诞生于深圳,通过熟人关系的快速构建,在一票基于陌生人关系的网络聊天室中脱颖而出,逐渐成为国内社交网络的巨头。

没错,它就是QQ的前身,在之后的数年里,腾讯正是通过不断优化升级IM相关的功能和架构,凭借QQ和微信这两大IM工具,牢牢控制了强关系领域的社交圈。

由此可见,IM技术作为互联网实时互动场景的底层架构,在整个互动生态圈的价值斐然

随着互联网的发展,人们对于实时互动的要求越来越高。于是,IM技术不止应用于QQ、微信这样的面向聊天的软件,它其实有着宽广的应用场景和足够有想象力的前景。甚至在不知不觉之间,IM系统已经根植于我们的互联网生活中,成为各大App必不可少的模块。

       从图中可以看到,IM发展至今,它并不是一门仅限于聊天、社交的技术,实际上已经广泛运用于我们身边形形色色的软件中。

国内的网络应用软件目前发展极为火爆,因为我国有着网络应用的最大市场随着5G等高速移动网络技术的快速推进,网络速度和稳定性大幅提升、网络流量费用降低,势必今后还会有越来越多的软件依托实时消息的优势理念加入到IM的大家庭中来。

毕竟谁不希望所有互动都能“实时触达”而且“安全可靠”呢?这也就意味着,5G时代全面来临时,懂IM的程序员意味着更多的就业机会和更开阔的发展前景。

然而我们要打造一套“实时、安全、稳定”的IM系统,是需要深入思考很多个地方的,尤其是作为整个实时互动业务的基础设施,扩展性、可用性、安全性等方面都需要有较高的保障。比如:

  • 某个明星忽然开直播了,在线用户数和消息数瞬间暴涨,该如何应对?

  • 弱网情况下,怎么解决消息收发失败的问题,提升消息到达率?

  • 如何避免敏感聊天内容由于网络劫持而泄露?

诸如此类的问题可能有很多种解决方案,但是对于不同的场景适用的方案可能也不一样。

另外现在互联网公司在面试的时候很多要考察系统设计能力,它不像算法那么晦涩难懂,但构建IM作为系统设计里面的常见题目,也是后端程序员必须要掌握的。

内容侵权 涉嫌营销 内容抄袭 违法信息 其他

已经收到您得举报信息,我们会尽快审核

我要回帖

更多关于 自制搭建聊天软件 的文章

 

随机推荐