im的定义,网络上说的im是什么

首页 > 社会 > 作者:YD1662024-07-30 06:32:00

本文在编写时参考了博客作者“鹿呦呦”和在线课程“即时消息技术剖析与实战”的相关资料,一并表示感谢。

1、系列文章引言

IM系统看似简单(没错,很多土老板认为开发个qq和微信也就是几万块钱的事... ),实责是众多技术的应用合体,包括网络编程、移动开发、后端开发、高并发、高可用、高安全等技术范畴,再加上多端使用不同的编程语言,想要凑齐一个典型的IM产品技术栈那也不是个容易事。

而对于IM开发入门者来说,想要在众多的IM技术术语和概念中找到学习的方向和需要的资料,那也是件很让人抓狂的事。如果看到不该看的技术深水区文章,直接从入门到放弃——被活活吓退,那也是相当悲剧的。

本系列文章将尽量从理论概念入手,通俗易懂的梳理IM中的基础技术概念和热门技术点,希望能帮你理清看似一团乱麻的IM知识体系,助你找到清晰的IM技术学习方向,来日工资翻倍、迎娶白富美也未必不可能!

im的定义,网络上说的im是什么(1)

友情提示:本系列文章侧重于理论概念的讲述,篇幅有限,点到即止,如需系统、深入、具体地学习IM技术的方方面面,请从此文入手:《新手入门一篇就够:从零开发移动端IM》(史诗级文章,适合从入门到放弃)。

2、系列文章目录

《IM开发快速入门(一):什么是IM系统?》(* 本文)

《IM开发快速入门(二):什么是IM系统的实时性? (稍后发布)》

《IM开发快速入门(三):什么是IM系统的可靠性? (稍后发布)》

《IM开发快速入门(四):什么是IM系统的一致性? (稍后发布)》

《IM开发快速入门(五):什么是IM系统的安全性? (稍后发布)》

《IM开发快速入门(六):什么是IM系统的的心跳机制? (稍后发布)》

《IM开发快速入门(七):如何理解并实现IM系统消息未读数? (稍后发布)》

《IM开发快速入门(八):如何理解并实现IM系统的多端消息漫游? (稍后发布)》

3、本文内容概述

本文将带你快速了解一个主流IM系统的应用场景、典型架构、技术特点和功能组成,帮你快速建立对IM系统的主观认知。

如果你不想从技术的角度理解IM原理,可以尝试阅读此文:《知识科普:IM聊天应用是如何将消息发送给对方的?(非技术篇)》。

本文已收入即时通讯网的入门纲领性文章《新手入门一篇就够:从零开发移动端IM》。

本文已同步发布于“即时通讯技术圈”公众号。

4、IM的应用场景

IM其实并不局限于聊天、社交这类“典型”应用中,实际上它已经广泛运用于我们身边形形色色的软件中。

聊天、直播、在线客服、物联网等所有需要实时互动、高实时性的场景等等,都需要应用到 IM 技术。

下面这些场景是我们大家都熟悉的,都用到了IM技术:

1)微信、qq、钉钉等主流IM应用:这是IM技术的典型应用场景;

2)微博、知乎等社区应用:它们利用IM技术实现了用户私信等点对点聊天;

3)抖音、快手等直播/短视频应用:它们利用IM技术实现了与主播的实时互动;

4)米家等智能家居物联网应用:利用IM技术实现实时控制、远程监控等;

5)滴滴、Uber等共享家通类应用:利用IM技术实现位置共享;

6)在线教育类应用:利用IM技术实现在线白板。

im的定义,网络上说的im是什么(2)

5、IM的典型架构

一个典型的IM架构类似于下图这样:

im的定义,网络上说的im是什么(3)

(本图引用自《即时消息技术剖析与实战》学习笔记1——IM系统的架构》一文)

如上图所示,IM架构中的各分层职责如下:

1)客户端:作为与服务端进行消息收发通信的终端;

2)接入层:也叫网关层,为客户端收发消息提供入口;

3)逻辑层:负责IM系统各功能的核心逻辑实现;

4)存储层:负责IM系统相关数据的持久化存储,包括消息内容、账号信息、社交关系链等;

5)第三方服务:保证APP在未打开或后台运行时也能收到消息通知(这主要是第第3方消息推送服务)。

尤其对于“接入层”,它的职责最为关键,具体是:

1)保持海量用户连接;

2)解析协议,对传输内容进行编解码;

3)维护客户端的连接(也叫“Session”);

4)推送消息。

以下文章适合IM架构设计入门,有兴趣可以读一读:

《浅谈IM系统的架构设计》

《简述移动端IM开发的那些坑:架构设计、通信协议和客户端》

《从游击队到正规军(一):马蜂窝旅游网的IM系统架构演进之路》

6、IM技术的特点

M技术的特点主要就是以下4点:

im的定义,网络上说的im是什么(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.