以网游服务端的网络接入层设计为例,理解实时通信的技术挑战
本文参考并引用了部分腾讯游戏学院的相关技术文章内容,感谢原作者的分享。 1、前言 以现在主流的即时通讯应用形态来讲,一个完整的即时通讯IM应用其实是即时通信(英文简写:IM=Instant messaging)和实时通信(英文简写:RTC=Real-time communication)2种技术组合在一起的一整套网络通信系统。之所以以IM这个简写代称整个即时通讯软件,其实是历史原因了(因为早期的诸如ICQ这样的即时通讯工具,也就是文字聊天,并没有加入实时音视频这样的实时通信技术),对这个话题有兴趣的可以到网上查一查IM的发展历史。 以微信、QQ这样的完整即时通讯应用来说,回归到工具的本质,它主要包含了两种应用和技术: 1)广义的文字聊天:也就是我最常理解的各种聊天消息的传递,这部分的技术实现就是众所周之的IM通信(即Instant messaging); 2)实时音视频聊天:包括语音电话、视频聊天,这部分的技术实现,从网络通信的角度讲,就是实时通信(即Real-time communication)。 我们回忆一下:早几年前市面上主流的移动端IM——比如微信、QQ、以及现在满屏广告的网易易信、半死不活的小米米聊、已经入土的阿里来往、打擦边球的陌陌等,基本都没有或者很晚才加入实时音视频聊天功能(我们抛开技术因素之外的原因不议),原因不是不想做