即时通讯简介

即时通讯(Instant Messaging)是一种基于互联网的即时交流消息的业务。

类型:

  • 在线push

    • 适用:web页面 和 App
    • 自己构建IM服务器
      • 使用WebSocket
      • 采用成熟的框架方案Socket.IO
      • 对于App还可自己封装socket
    • 使用第三方IM服务商提供的服务
  • 离线push

    • 适用:App
    • 对于iOS,使用APNs
    • 对于andorid,使用FCM(国外)或第三方IM服务商提供的服务

提供第三方IM服务的服务商有:

  • 网易云信
  • 融云
  • 环信
  • LeanCloud

下面只针对 「在线推送」 的自建方案来展开讲解。

需求场景

服务端需要主动推送消息给客户端,例如

  • 用户下了订单,需要在运营管理后台向运营人员推送新订单通知
  • 用户A关注了用户B,系统需要向用户B推送提示消息
  • 即时聊天

传统的推送实现

HTTP/1.x 不支持服务器主动推送,只能在客户端发起请求后做出回应。 (HTTP/2支持服务器主动推送,但HTTP/2 还未全面实施)

  • 轮询

轮询是在特定的的时间间隔(如每1秒),由客户端对服务器发出HTTP请求,了解服务器有没有新的信息,然后由服务器告知有无新数据或返回最新的数据给客户端。

缺点:

    • 效率低下,浪费资源

必须不停连接,或者连接始终打开,但传输HTTP请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。

  • Comet (基于长连接)

    • 长轮询 长轮询是在打开一条连接以后保持,等待服务器推送来数据再关闭的方式。
    • iframe流 iframe流方式是在页面中插入一个隐藏的iframe,利用其src属性在服务器和客户端之间创建一条长链接,服务器向iframe传输数据(通常是HTML,内有负责插入信息的javascript),来实时更新页面。

缺点:

依然需要反复发出请求,而且长连接也会消耗服务器资源。

135、即时通讯简介相关推荐

  1. Android即时通讯--仿QQ即时聊天:(一)初识Socket

    1.即时通讯简介 即时通讯(Instant Messaging,简称IM)是一个终端服务,允许两人或者多人通过网络即时传递文字讯息.档案.语音等.简单的概括就是发送消息时,只要对方在线,就能立即接收到 ...

  2. 企业即时通讯需要哪些功能?如何快速实现即时通讯

    即时通讯软件现在有分为两种,一种是个人社交沟通软件,另外一种则是企业即时通讯,企业即时通讯的功能要比个人社交沟通软件要全面,毕竟是为了让企业内部方便沟通.管理及办公.那么企业即时通讯软件除了社交聊天功 ...

  3. 杂项-IM:IM(即时通讯),一种基于互联网的即时交流消息的业务

    ylbtech-杂项-IM:IM(即时通讯),一种基于互联网的即时交流消息的业务 即时通讯(Instant Messaging)是目前 Internet上最为流行的通讯方式,各种各样的即时通讯软件也层 ...

  4. Netty实战 IM即时通讯系统(二)Netty简介

    ## Netty实战 IM即时通讯系统(二)Netty简介 零. 目录 IM系统简介 Netty 简介 Netty 环境配置 服务端启动流程 实战: 客户端和服务端双向通信 数据传输载体ByteBuf ...

  5. Netty实战 IM即时通讯系统(一)IM系统简介

    ## Netty实战 IM即时通讯系统(一)IM系统简介 零. 目录 IM系统简介 Netty 简介 Netty 环境配置 服务端启动流程 实战: 客户端和服务端双向通信 数据传输载体ByteBuf介 ...

  6. 即时通讯有标准 IM的四种即时通讯协议简介

    IM(Instant Messaging)正在被广泛地采用,特别是在公司与它们的客户互动联接方案上.为了解决即时通讯的标准问题,IETF成立了专门的工作小组,研究和开发与IM相关的协议. 目前IM有四 ...

  7. IM即时通讯开发简介

    IM即时通讯似乎是整个市场严重破坏的开始,与此同时,移动应用集成IM即时通讯也变成了一种新趋势.但是,实际上隐藏在IM即时通讯背后的是什么呢?这是一种新的沟通方式,还是只是冰山一角?今天我们要仔细看一 ...

  8. Android学习笔记--基于XMPP的即时通讯

    一.常见即时通讯实现 socket openfire+asmack 环信 信鸽 融云 二.XMPP优势 1. 开放性 XMPP协议是自由.开放.公开的,并且易于了解.而且在客户端.服务器.组件.源码库 ...

  9. Openfire XMPP Smack RTC IM 即时通讯 聊天 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  10. 2022-2028年中国即时通讯市场投资分析及前景预测报告

    [报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了即时通讯行业相关概述.中国即时通讯行业运行环境.分析了中国即时通讯行 ...

最新文章

  1. npm使用入门(package.json)
  2. 动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
  3. httpcline转发_如何实现Http请求报头的自动转发[应用篇]
  4. 一句话讲清楚IOC容器以及什么时候使用@Autowired
  5. 前端学习(583):在console中访问节点
  6. 【Java】不要直接使用引用未判空的对象
  7. 直播丨探究Oracle多租户架构
  8. 在线打假!“鲁迅说过的话”检索系统上线 网友太热情系统一度崩溃
  9. 完美安装ubuntu
  10. 一年代码功能点的创新性怎么写_创新项目计划书模板
  11. matlab数字图像处理-找不同
  12. python练习:重命名大量图片
  13. usb芯片+android+驱动,PL2303芯片驱动
  14. AI美杜莎来袭 · 光点2021
  15. ASP.NET 安全认证(三)—— 用Form 表单认证实现单点登录(Single Sign On)
  16. css进阶四(多媒体嵌入)
  17. 万字详解车路协同、C-V2X通信协议
  18. [水]关于web地图
  19. Altium Designer 18中的Violations Associated with Documents
  20. 极客日报:蚂蚁启动春招,技术人才需求超八成;微软动视暴雪收购案遭调查;Firefox 98 发布|极客头条

热门文章

  1. 数据透视表:多重合并计算数据区域
  2. 餐饮行业裂变解决方案
  3. 数据分析概念与职业操守
  4. C++ map通过key获取value
  5. Datastage数据装载报错:Consumed more than 1000000 bytes looking for record delimiter
  6. 【游戏编程扯淡精粹】TinySTL源码阅读
  7. win8.1 更新后出现致命错误C0000034,无法进入安全模式和高级选项
  8. java实现第六届蓝桥杯分机号
  9. linux os版本 32或64位查看
  10. 【初级篇】使得PC搭建的网站在非局域网也能访问的几种方法