互联网即时聊天工具是如何实现的?

互联网即时聊天工具是如何实现的?,第1张

如下:

该软件采用P2P方式,各个客户端之间直接发消息进行会话聊天,服务器在其中只扮演协调者的角色(混合型P2P)。

1会话流程设计

当一个新用户通过自己的客户端登陆系统后,从服务器获取当前在线的用户信息列表,列表信息包括了系统中每个用户的地址。用户就可以开始独立工作,自主地向其他用户发送消息,而不经过服务器。每当有新用户加入或在线用户退出时,服务器都会及时发消息通知系统中的所有其他用户,以便它们实时地更新用户信息列表。

按照上述思路,设计系统会话流程如下:

(1)用户通过客户端进入系统,向服务器发出消息,请求登陆。

(2)服务器收到请求后,向客户端返回应答消息,表示同意接受该用户加入,并顺带将自己服务线程所在的监听端口号告诉用户。

(3)客户端按照服务器应答中给出的端口号与服务器建立稳定的连接。

(4)服务器通过该连接将当前在线用户的列表信息传给新加入的客户端。

(5)客户端获得了在线用户列表,就可以独立自主地与在线的其他用户通信了。

(6)当用户退出系统时要及时地通知服务器。

2用户管理

系统中,无论是服务器还是客户端都保存一份在线用户列表,客户端的用户表在一开始登陆时从服务器索取获得。在程序运行的过程中,服务器负责实时地将系统内用户的变动情况及时地通知在线的每个成员用户。

新用户登录时,服务器将用户表传给他,同时向系统内每个成员广播“login”消息,各成员收到后更新自己的用户表。

同样,在有用户退出系统时,服务器也会及时地将这一消息传给各个用户,当然这也就要求每个用户在自己想要退出之前,必须要先告诉服务器。

3协议设计

31客户端与服务器会话

(1)登陆过程。

客户端用匿名UDP向服务器发送消息:

login,username,localIPEndPoint

消息内容包括3个字段,各字段之间用“,”分隔:“login”表示请求登陆;“username”为用户名;“localIPEndPoint”是客户端本地地址。

服务器收到后以匿名UDP返回如下消息:

Accept,port

其中,“Accept”表示服务器接受了请求;“port”是服务所在端口,服务线程在这个端口上监听可能的客户连接,该连接使用同步的TCP。

连上服务器,获取用户列表:

客户端从上一会话的“port”字段的值服务所在端口,于是向端口发起TCP连接,向服务器索取在线的用户列表,服务器接受连接后将用户列别传输给客户端。

用户列表格式如下:

username1,IPEndPoint1;username2,IPEndPoint2;;end

username1,username2为用户名,IPEndPoint1,IPEndPoint2为它们对应的端点。每个用户的信息都有个“用户名+端点”组成,用户信息之间以“;”隔开,整个用户列表以“end”结尾。

31服务器协调管理用户

(1)新用户加入通知。

由于系统中已存在的每个用户都有一份当前用户表,因此当有新成员加入时,服务器无需重复给系统中的每个成员再传送用户表,只要将新加入成员的信息告诉系统内的其他用户,再由他们各自更新自己的用户表就行了。

服务器向系统内用户广播发送如下消息:

端点字段写为“remoteIPEndPoint”,表示是远程某个用户终端登陆了,本地客户线程据此更新用户列表。其实,在这个过程中,服务器只是将受到的“login”消息简单地转发而已。

(2)用户退出。

与新成员加入时一样,服务器将用户退出的消息直接进行广播转发:

logout,username,remoteIPEndPoint

其中,“remoteIPEndPoint”为退出系统的远程用户终端的端点地址。

31用户终端之间聊天

用户聊天时,他们各自的客户端之间是以P2P方式工作的,彼此地位对等,独立,不与服务器发生直接联系。

4系统实现

41服务线程

系统运行后,先有服务器启动服务线程,只需单击“启动”按钮即可。

即时聊天软件可以在两名或多名用户之间传递即时消息的网络软件,大部分的即时聊天软件都可以显示联络人名单,并能显示联络人是否在线。使用者发出的每一句话都回即时显示在双方的萤幕上。

Anychat

Anychat是基于先进的H264视频编码标准、AAC音频编码标准与P2P技术,整合了佰锐科技在音视频编码、多媒体通讯领域领先的开发技术而设计的高质量、宽适应性、分布式、模块化的网络音视频互动平台。

Skype

通过在全世界范围内向客户提供免费的高质量通话服务,正在逐渐改变电信业。Skype是网络即时语音沟通工具。具备IM所需的其他功能,比如视频聊天、多人语音会议、多人聊天、传送文件、文字聊天等功能。它可以免费高清晰与其他用户语音对话,也可以拨打国内国际电话,无论固定电话、手机、小灵通均可直接拨打,并且可以实现呼叫转移、短信发送等功能。

FastMsg

FastMsg是一款功能强大的即时通讯软件,完全免费,无任何功能限制。无论是企业内部应用,还是电子商务/论坛社区的运营,均可下载服务端程序自由部署到局域网/公网服务器。

FastMsgTeam(企业版)集成了组织架构、即时通讯、网页客服、离线文件传输、语音视频、远程协助、应用中心、企业公告/通知等功能,还可以通过FastMsgTeamSDK自行集成ERP、OA、CRM等本地的系统与应用,是企业零成本搭建即时通讯平台的最佳选择,适用于各类集团公司、中小企业分支机构,行政机关、事业单位,金融、医疗、学校等社会团体跨地域的企业管理和内部交流。

FastMsgLive(运营版)具有精美的界面,丰富的聊天功能,开放式的应用中心,用户可自由上传自己感兴趣的应用。无任何广告,不安装插件,不侵犯用户隐私,所有功能全部免费,注册即可使用,具有文字,语音、视频、群组、离线传文件夹等众多丰富功能与应用,适合各类垂直门户、行业网站、购物网站、论坛等网站的注册用户/会员间的在线交流与沟通。

Jabber

Jabber是一个以XML为基础,跨平台、开放原始码,且支持SSL加密技术之实时通讯协议,Jabber的开放式架构,让世界各地都可以拥有Jabber的服务器,不再受限于官方。不仅如此,一些Jabber的爱好者,还尽心研发介绍(4张)出Jabber的协议转换程序,让Jabber使用者还能与其它实时通讯程序之使用者交谈,这是其它知名实时通讯软件皆无法做到的喔!

IRC

IRC是的缩写,一般说来,他就是多人在线实时交谈系统。也就是一个以交谈为基础的系统。在IRC之中,可以好几个人加入某个相同的频道,来讨论相同的主题,这样的频道,我们称之为channel,当然,一个人可以加入不只一个频道,这点与News的特色是非常类似的。IRC是由芬兰的在80(1988)年代的晚期所发展的,起初的目的,是要让他的布告栏()使用者除了可以看文件之外,还可以做在线实时的讨论。当然,他非常的迷人,特别是当IRC被用来报导现实生活的Gulf战争(1991年)之后,IRC就有慢慢分家的趋势。到如今,IRC已经是一个与布告栏脱离的独立系统。至今,已经有超过60个的国家使用这套系统。

ICQ

ICQ的意思是:ISeekYou(我找你)。1996年7月,四个以色列年青人,(26岁)、ArikVardi(27岁)、SefiVigiser(25岁)、AmnonAimr(24岁),在使用因特网时,深感实时和朋友联络十分不便,于是为了在Internet上建立一个实时的连络方式,而成立了Mirabilis公司。1996年11月,第一版ICQ产品在Internet上发表。立刻被网友们接受,然后就像传道一样,一传十,十传百的在网友间互相介绍这样产品。由于反映出奇的好,创造了一个刚成立不久的公司,在Internet历史上,就拥有最大下载率。到了1997年5月就有85万个使用者注册,在一年半后,就有1140万个使用者注册,其中有600万人有在使用ICQ,每天还有将近6万人进行注册。大商人看准了人潮便是商机,所以在1998年6月,美国知网络服务公司(简称AOL)公司看准了这个一千多万的人潮,花了4亿美金,收购了研发ICQ的以色列Mirabilis软件公司,这个记录创下了网络发展史上的另一个奇迹。2000年9月,ICQ2000b正式版本终于推出。

ICQ的缺点,是在MSN出现之后,没有跟上MSN的脚步,例如在表情符号的加入。

MSN

MSN是WindowsLiveMessenger的缩写。目前最新的中文版是90Beta。MSN是一种Internet软件,它基于Microsoft高级技术,可使您和您的家人更有效地利用Web。MSN9是一种优秀的通信工具,使Internet浏览更加便捷,并通过一些高级功能加强了联机的安全性。这些高级功能包括家长控制、共同浏览Web、垃圾邮件保护器和定制其他。

QQ

1998年11月12曰,马化腾和他大学时的同班同学张志东正式注册成立"深圳市腾讯计算机系统有限公司"。当时公司的主要业务是拓展无线网络寻呼系统。在公司成立当初要业务是为寻呼台建立网上寻呼系统,这种针对企业或单位的软件开发工程可以说是几乎所有中小型网络服务公司的最佳选择。

1997年,马化腾接触到了ICQ并成为它的用户,他亲身感受到了ICQ的魅力,也看到了它的局限性:一是英文界面,二是在使用操作上有相当的难度,这使得ICQ在国内使用的虽然也比较广,但始终不是特别普及,大多局限于"网虫"级的高手里。马化腾和他的伙伴们一开始想的是开发一个中文ICQ的软件,然后把它卖给有实力的企业,腾讯当时并没有想过自己经营需要投入巨大资金而又挣不了钱的中文ICQ。当时是因为一家大企业有意投入较大资金到中文ICQ领域,腾讯也写了项目建设书并且已经开始着手开发设计OICQ,到投标的时候,腾讯公司没有中标,于是腾讯决定自己做OICQ。要知道,当时腾讯给OICQ标的价格才仅仅为三十多万而已。到后来腾讯开始迅速发展的时候,马化腾十分合时宜的说,"我们需要自己的中文网络软件,我们需要自己的ICQ!",但事实上,腾讯推出OICQ纯属是一个偶然,如果那家大企业没打算投入资金到中文ICQ领域,也就不会有OICQ,如果腾讯公司中了标,也就不会有腾讯的OICQ,腾讯的成功某种程度上说一半是运气,一半是实力。

飞信

飞信(英文名:Fetion)是中国移动推出的“综合通信服务”,即融合语音(IVR)、GPRS、短信等多种通信方式,覆盖三种不同形态(完全实时、准实时和非实时)的客户通信需求,实现互联网和移动网间的无缝通信服务。飞信不但可以免费从PC给手机发短信,而且不受任何限制,能够随时随地与好友开始语聊,并享受超低语聊资费。飞信Fetion2012贺岁版为最高版本,中国移动飞信实现无缝链接的多端信息接收,MP3、和普通OFFICE文件都能随时随地任意传输,让您随时随地都可与好友保持畅快有效的沟通,工作效率高,快乐齐分享!

飞信还具备防骚扰功能,只有对方被您授权为好友时,才能与您进行通话和短信,安全又方便。飞信最新版已经具有向未加为好友的移动号码直接发送短信的功能,即使对方并非飞信好友,收费与正常收费相同,每条01元。飞信所提供的好友手机短信免费发、语音群聊超低资费、手机电脑文件互传等更多强大功能,令用户在使用过程中产生更加完美的产品体验;飞信能够满足用户以匿名形式进行文字和语音的沟通需求,在真正意义上为使用者创造了一个不受约束、不受限制、安全沟通和交流的通讯平台。

飞信是中国移动2007年5月建立的即时通信工具,据悉,目前用户数早已超过MSN,跃居国内第二大即时通讯软件。“飞信这个项目卓望不做了”,2011年6月26日晚间,知情人士透露,“中国移动日前已经决定,将飞信的运营权转交给广东移动的南方基地”。

百度HI

2008年2月29日,各大技术类网站都发表消息,传闻已久的百度IM软件终于开始了内测!IM名字确定为百度hi“百度Hi”,随着内测的开始,随之而来的是铺天盖地的媒体报道。百度官方并未自行公布细节。根据各大网站的资料分析,由于内测的关系,安装后暂时只能看看其安装目录的文件以及界面。安装文件不大,只有524M,安装目录的文件也不多,表情有58个,头像有28个(包括6个群头像)。

7百度Hi是一款集文字消息、音视频通话、文件传输等功能的即时通讯软件,通过它您可以方便地找到志同道合的朋友,并随时与好友联络感情。

同时有新闻表示,百度hi暂时处于内测阶段,大家可以到上申请。

百度IM的出世,就目前而言即时通讯市场不会被立刻改变格局,对腾讯QQ和MSN而言一年内暂时不会有很大的冲击力。虽然如此,但腾讯和MSN也面临着未来百度IM发展壮大的威胁。而本人观点,百度推出IM目的在于为百度进军C2C市场做出提前准备,IM作为电子商务最有效的一种沟通工具,百度自然不可能使用其他企业的产品作为用户交流工具。另外还有一个推出IM的原因,那就是强化百度社区、百度贴吧用户群体的稳定性。粘性用户基础的建设也就是目前内测的“百度HI”即时通讯产品可以达到串联产品,整合用户的作用。如此一来,百度用户群体可以通过“百度HI”自由切换百度空间,百度贴吧,百度搜索来完成产品一系列的运作,达到活跃与互动。

商讯BB

商讯BB又名商讯宝贝、商讯宝宝、商讯贝贝,是重庆中商科技集团耗时3年半,投资数百万潜心研发的一款功能强大的web通讯软件,它具有安全可靠,技术稳定等特性,同时具有无需下载即可使用,操作简便,适应用户日常使用习惯。

商讯BB拥有语音,视频,文件传输,离线短信息通知,免费电话回呼和手机登陆客户端管理等一系列强大的即时通讯功能,可以轻松满足用户在线咨询,在线交流,互动聊天,在线交易,交好友等等上网需求;适用于各大电子商务网站,如B2B网站,B2C网站和C2C模式网站的在线应用,同时也非常适用于各大娱乐,资讯门户网站,如博客网,社区网站,交友网站和各大行业综合门户网站。

商讯BB通讯软件平台,可以根据网站的不同需求,完全定制和OEM,客户端界面,聊天窗口等都是可以自定义设计的,同时可以为网站带来如下新赢利模式,关键字广告,精准搜索广告,内容页聊天窗口广告,系统消息平推广告,客户端广告和聊天窗口广告,电信增值业务等。

阿里旺旺

是将原先的淘宝旺旺与阿里巴巴贸易通整合在一起的新品牌。是淘宝网和阿里巴巴为商人度身定做的免费网上商务沟通软件。它能帮您轻松找客户,发布、管理商业信息;及时把握商机,随时洽谈做生意!

这个品牌分为阿里旺旺(淘宝版)与阿里旺旺(贸易通版)、阿里旺旺(口碑网版)三个版本。这两个版本之间支持用户互通交流。但是,如果你想同时使用与淘宝网站和阿里巴巴中文站相关的功能,仍然需要同时启动淘宝版和贸易通版。目前贸易通帐号需要登录贸易通版阿里旺旺,淘宝帐号需要登录淘宝版阿里旺旺,口碑网登陆口碑版的阿里旺旺。

新浪UC

(Universal)

是新浪UC信息技术有限公司开发的,融合了P2P思想的下一代开放式即时通讯的网络聊天工具。

EE

是大家E公司2010年推出的多国语言翻译聊天软件测试版。可以实现中、英、日、韩、德、法、俄、西班牙、葡萄牙等15国的在线聊天功能。很适合学生学习外语,外贸人员和老外聊天,交友和外国沟通等。

希望对你能有所帮助。

Signal

Signal社交软件是一款开源、加密的即时通讯应用,它致力于为用户提供安全、私密的聊天环境。采用了端到端加密技术,无广告且免费使用,用户也可以设置消息的过期时间,自动销毁聊天记录,更好地保护隐私。(目前国内不可使用)

Telegram (TG或电报)

Telegram是一款由俄罗斯创业家杜洛夫兄弟于2013年开发的即时通讯软件,它采用了端对端加密技术,保证了用户的隐私安全。Telegram 支持多种语言,包括中文、英文、日文等,用户可以通过它与世界各地的朋友进行交流。(但目前国内不可使用)

蝙蝠app

蝙蝠是一款基于端对端加密的私密聊天通讯工具,是中国安全领域的开放式社交平台之一。基于安全加密的移动社交软件,可以随时随地收发讯息,与好友语音、视频通话,支持一对一单聊、多人群聊,具有端对端加密、消息回执、预设密信、账号销毁、截屏提醒、消息分组、超级万人群、群聊盖楼等特色功能。

Threema

Threema是一款开源、端到端加密的即时通讯软件,它提供了一种安全、私密的聊天方式。Threema的服务器不会存储用户的聊天记录,所有的消息都直接在用户之间传输,因此即使有人入侵了服务器,也无法获取到用户的聊天记录。同时,它也提供了一个匿名模式,不需要绑定手机号或电子邮件,保护用户的个人信息。(目前国内不可

闪聊聊天服务器软件是拓盟计算机科技有限公司旗下的一款聊天室软件,它让成千上万个网站拥有免费的聊天室。是功能强劲的Java服务器和界面精致的Flash客户端比较完美的结合。闪聊即时聊天室反应快速,使用方便,沟通安全,更可支持高流量与多国语言,适用于各种规模的网站和企业。

CIM(CROSS-IM) 一款面向开发者的 IM(即时通讯)系统;同时提供了一些组件帮助开发者构建一款属于自己可水平扩展的 IM 。

借助 CIM 你可以实现以下需求:

下面来看看具体的架构设计。

整体主要由以下模块组成:

cim-server

IM 服务端;用于接收 client 连接、消息透传、消息推送等功能。

支持集群部署。

cim-forward-route

消息路由服务器;用于处理消息路由、消息转发、用户登录、用户下线以及一些运营工具(获取在线用户数等)。

cim-client

IM 客户端;给用户使用的消息终端,一个命令即可启动并向其他人发起通讯(群聊、私聊);同时内置了一些常用命令方便使用。

整体的流程也比较简单,流程图如下:

所以当我们自己部署时需要以下步骤:

接下来重点看看具体的实现,比如群聊、私聊消息如何流转;IM 服务端负载均衡;服务如何注册发现等等。

IM 服务端

先来看看服务端;主要是实现客户端上下线、消息下发等功能。

首先是服务启动:

由于是在 SpringBoot 中搭建的,所以在应用启动时需要启动 Netty 服务。

从 pipline 中可以看出使用了 Protobuf 的编解码(具体报文在客户端中分析)。

注册发现

需要满足 IM 服务端的水平扩展需求,所以 cim-server 是需要将自身数据发布到注册中心的。

所以在应用启动成功后需要将自身数据注册到 Zookeeper 中。

最主要的目的就是将当前应用的 ip + cim-server-port+ http-port 注册上去。

上图是我在演示环境中注册的两个 cim-server 实例(由于在一台服务器,所以只是端口不同)。

这样在客户端(监听这个 Zookeeper 节点)就能实时的知道目前可用的服务信息。

登录

当客户端请求 cim-forward-route 中的登录接口(详见下文)做完业务验证(就相当于日常登录其他网站一样)之后,客户端会向服务端发起一个长连接,如之前的流程所示:

这时客户端会发送一个特殊报文,表明当前是登录信息。

服务端收到后就需要将该客户端的 userID 和当前 Channel 通道关系保存起来。

同时也缓存了用户的信息,也就是 userID 和 用户名。

离线

当客户端断线后也需要将刚才缓存的信息清除掉。

同时也需要调用 route 接口清除相关信息(具体接口看下文)。

IM 路由

从架构图中可以看出,路由层是非常重要的一环;它提供了一系列的 HTTP 服务承接了客户端和服务端。

目前主要是以下几个接口。

注册接口

由于每一个客户端都是需要登录才能使用的,所以第一步自然是注册。

这里就设计的比较简单,直接利用 Redis 来存储用户信息;用户信息也只有 ID 和 userName 而已。

只是为了方便查询在 Redis 中的 KV 又反过来存储了一份 VK,这样 ID 和 userName 都必须唯一。

登录接口

这里的登录和 cim-server 中的登录不一样,具有业务性质,

为了实现只能一个用户登录,使用了 Redis 中的 set 来保存登录信息;利用 userID 作为 key ,重复的登录就会写入失败。

获取一台可用的路由实例也比较简单:

当然要获取 Zookeeper 中的服务实例前自然是需要监听 cim-server 之前注册上去的那个节点。

具体代码如下:

也是在应用启动之后监听 Zookeeper 中的路由节点,一旦发生变化就会更新内部缓存。

群聊接口

这是一个真正发消息的接口,实现的效果就是其中一个客户端发消息,其余所有客户端都能收到!

流程肯定是客户端发送一条消息到服务端,服务端收到后在上文介绍的 SessionSocketHolder 中遍历所有 Channel(通道)然后下发消息即可。

服务端是单机倒也可以,但现在是集群设计。所以所有的客户端会根据之前的轮询算法分配到不同的 cim-server 实例中。

因此就需要路由层来发挥作用了。

路由接口收到消息后首先遍历出所有的客户端和服务实例的关系。

路由关系在 Redis 中的存放如下:

由于 Redis 单线程的特质,当数据量大时;一旦使用 keys 匹配所有 cim-route: 数据,会导致 Redis 不能处理其他请求。

所以这里改为使用 scan 命令来遍历所有的 cim-route:。

接着会挨个调用每个客户端所在的服务端的 HTTP 接口用于推送消息。

在 cim-server 中的实现如下:

cim-server 收到消息后会在内部缓存中查询该 userID 的通道,接着只需要发消息即可。

在线用户接口

这是一个辅助接口,可以查询出当前在线用户信息。

实现也很简单,也就是查询之前保存 ”用户登录状态的那个去重 set “即可。

私聊接口

之所以说获取在线用户是一个辅助接口,其实就是用于辅助私聊使用的。

一般我们使用私聊的前提肯定得知道当前哪些用户在线,接着你才会知道你要和谁进行私聊。

类似于这样:

在我们这个场景中,私聊的前提就是需要获得在线用户的 userID。

所以私聊接口在收到消息后需要查询到接收者所在的 cim-server 实例信息,后续的步骤就和群聊一致了。调用接收者所在实例的 HTTP 接口下发信息。

只是群聊是遍历所有的在线用户,私聊只发送一个的区别。

下线接口

一旦客户端下线,我们就需要将之前存放在 Redis 中的一些信息删除掉(路由信息、登录状态)。

IM 客户端

客户端中的一些逻辑其实在上文已经谈到一些了。

登录

第一步也就是登录,需要在启动时调用 route 的登录接口,获得 cim-server 信息再创建连接。

登录过程中 route 接口会判断是否为重复登录,重复登录则会直接退出程序。

接下来是利用 route 接口返回的 cim-server 实例信息(ip+port)创建连接。

最后一步就是发送一个登录标志的信息到服务端,让它保持客户端和 Channel 的关系。

自定义协议

上文提到的一些登录报文、真正的消息报文这些其实都是在我们自定义协议中可以区别出来的。

由于是使用 Google Protocol Buffer 编解码,所以先看看原始格式。

其实这个协议中目前一共就三个字段:

目前主要是三种类型,分别对应不同的业务:

心跳

为了保持客户端和服务端的连接,每隔一段时间没有发送消息都需要自动的发送心跳。

目前的策略是每隔一分钟就是发送一个心跳包到服务端:

这样服务端每隔一分钟没有收到业务消息时就会收到 ping 的心跳包:

内置命令

客户端也内置了一些基本命令来方便使用。

比如输入 :q 就会退出客户端,同时会关闭一些系统资源。

当输入 :olu(onlineUser 的简写)就会去调用 route 的获取所有在线用户接口。

群聊

群聊的使用非常简单,只需要在控制台输入消息回车即可。

这时会去调用 route 的群聊接口。

私聊

私聊也是同理,但前提是需要触发关键字;使用 userId;;消息内容 这样的格式才会给某个用户发送消息,所以一般都需要先使用 :olu 命令获取所以在线用户才方便使用。

消息回调

为了满足一些定制需求,比如消息需要保存之类的。

所以在客户端收到消息之后会回调一个接口,在这个接口中可以自定义实现。

因此先创建了一个 caller 的 bean,这个 bean 中包含了一个 CustomMsgHandleListener 接口,需要自行处理只需要实现此接口即可。

自定义界面

由于我自己不怎么会写界面,但保不准有其他大牛会写。所以客户端中的群聊、私聊、获取在线用户、消息回调等业务(以及之后的业务)都是以接口形式提供。

也方便后面做页面集成,只需要调这些接口就行了;具体实现不用怎么关心。

cim 目前只是第一版,BUG 多,功能少(只拉了几个群友做了测试);不过后续还会接着完善,至少这一版会给那些没有相关经验的朋友带来一些思路。

欢迎工作一到五年的Java工程师朋友们加入Java程序员开发: 721575865

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

即时通讯(Instant Messenger,简称IM),是一种基于网络满足用户即时交流消息的通信方式,企业即时通讯:简称EIM(Enterprise Instant Messaging),则是一种面向企业用户的网络沟通工具服务方式,使用者通过公司提供的即时通讯工具客户端进行各方的实时沟通,可以发送文字、语音、视频、文件等内容。

典型的公司即时通讯工具有信源密信(原名信源豆豆),是信息安全终端龙头企业北信源耗费12亿资金研发的安全即时通讯工具。具有微信、钉钉所有的通讯功能,但也自主研发了长语音视频、单次阅读、双向删除、禁止转发、阅读水印等安全功能,可以让企业时刻保证数据不泄露,信息安全有保障。感兴趣的可以去信源密信官网下载试用。 实力碾压

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 互联网即时聊天工具是如何实现的?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情