浅谈IM软件业务知识—会话session的概念,附一张IM软件的层次图
----------------------------------------------------欢迎查看IM软件业务知识《专栏》-------------------------------------------------------------------
使用状态机来保持在线状态 【点击】 拼图算法,将零碎小图,整理到一张大图上【点击】
登录导航 【点击】 会话session的概念【点击】
“假在线’ 【点击】 非对称加密,RSA算法【点击】
如何建立安全socket连接、登录 【点击】 浅谈断线重连、心跳和长在线 【点击】
iOS 客户端创建网络连接,常见错误汇总 【点击】 protocolBuf 在iOS上的使用入门、讲解、指南 【点击】
实现富文本解析【点击】 UITableview Deceleration 加速滑动(惯性滑动)、弹性回归原理【点击】
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
session一般出现在计算机领域,IM软件中的session,老的IM有两层:首先是逻辑层的session来管理会话的参与者,消息列表,会话类型等等;还有协议层的session,主要是代表客户端跟服务器的一个事物通道。
老的IM软件
客户端跟Server交互的每一类操作都是基于会话。比如客户端登录,需要建立一个登录的会话;客户端发消息,需要建立一个会话。下面举例:
客户端向Server发了一条消息,这条消息的发送就建立在会话之上。客户端需要下面几个步骤。
1. 创建一个session ID=1,
2. 发第一条消息的sequence id=1,第二条消息sessionID仍是1,但是sequence ID=2以此类推,同一个联系人建立的sessionID不变,sequenceID跟着消息的数量递增。
3. 消息发送完成后,关闭session。
客户端发送完消息,需要Server的回执,所以sessionID+sequenceID组成唯一的标识,可以找到发送的这条消息,更新UI的显示。
上面的场景就是所谓的【会话内】消息,主要是发给在线联系人,Server做了特殊处理,这样的消息可以很快速的到达对方。有了会话内,就有【会话外】:会话外指的是:不需要建立会话,直接发送给对,Server会存储下来等到对方下次上线再发送。
很明显,会话外的逻辑要比回话外的简单得多!
现状
现代的IM软件应该都是所谓的会话外了,没有协议层的session的概念了,只有逻辑层的session。
现代的协议更聪明了,每一个消息都有一个messageID,这样的话。会话的概念就不存在了,客户端-服务器之间只有一个socket网络层面的会话了。
附一张IM软件的层次图
protocol.a是一个简写,其实是一个核心的库,负责协议层的解析和管理。
浅谈IM软件业务知识—会话session的概念,附一张IM软件的层次图相关推荐
- 讨论IM软件企业知识—会谈session的概念,附连到IM软件层次图
session通常当今计算机领域,IM软体session.老IM那里有两个:第一个是逻辑层session参与者管理会议.新闻列表,会话类型等:有协议层session.主要代表client随着serve ...
- 浅谈IM软件业务知识-实现富文本解析,如:解析字符串、网络链接等
----------------------------------------------------欢迎查看IM软件业务知识<专栏>-------------------------- ...
- IM软件业务知识—导航
----------------------------------------------------欢迎查看IM软件业务知识<专栏>-------------------------- ...
- 浅谈Ubuntu 18.04.1 LTS x86_64安装,美化配置及常用软件安装配置的历程
浅谈Ubuntu 18.04.1 LTS x86_64安装,美化及常用软件安装配置的历程 这几天入坑Ubuntu,本着双系统来的却不小心把Windows玩崩了.期间各种问题各种坑,查阅了很多文章来解决 ...
- 浅谈一下企业IT运维痛点以及好用的运维软件推荐
随着IT建设的不断深入和完善,IT资产越来越多,IT运维管理越发显得重要.但不少企业不知道如何有效进行IT运维,不知道如何更好进行IT运维,今天我们就来一起浅谈一下企业IT运维痛点,以及给大家推荐一款 ...
- 浅谈人工智能(`AI`)基础知识
人工智能(AI)-基础知识 文档导航 人工智能(`AI`)-基础知识 1. 什么是人工智能 1.1 人工智能基础定义 1.2 人工智能基本概述 1.3 人工智能基本组成 1.4 人工智能研究课题 1. ...
- 浅谈大数据业务处理流程
大数据业务处理根据数据形式可分为"离线数据"与"实时数据". "实时数据"也就是要即时反馈的数据,如购物平台的推荐系统:猜你喜欢,买了又买. ...
- 谈计算机知识对学生的作用,浅谈学习计算机基础知识对中专学生的重要性
[摘 要]本文主要介绍了计算机基础知识的内容,阐述了学习计算机基础知识对中专学生的作用,并且通过对计算机基础操作的学习,提高中专学生的计算机应用水平.希望本文可以让中专学生认识到学习计算机基础知识的重 ...
- 浅谈PE(私募股权)业务及系统建设:02. 系统建设
在上一篇文章中,我们通过金信公司的例子,简单介绍了PE业务的运作模式.显然,随着PE公司管理的基金规模的不断增长,基金公司要保持高效和可靠的基金运营以及投资者服务水平,依靠人工力量的成本是很高的,甚至 ...
最新文章
- 美国实行公共场所禁用面部识别设备 IBM跨界饮食业利用AI开发美食
- 使用uni-app实现使用浏览器下载功能时,安卓端部分机型不兼容问题(小米/华为)
- linux ubuntu gcc编译 fatal error: bits/libc-header-start.h 错误解决
- 启明云端分享| ESP32-S2直驱USB摄像头
- 【资源】机器学习 周志华
- 机器人的弊议论文_关于练字的作文800字高中(写字机器人的利弊议论文)
- 32位qt程序, 利用32位mysql驱动,连接64位mysql8.0
- 【常见网页排版布局】
- 26.时空跳跃者的魔法
- APIC -- 高级可编程中断控制器
- Nginx获取真实用户IP
- Ubuntu关机和重启的命令
- 〖ChatGPT实践指南 - 零基础扫盲篇③〗- 开始使用 ChatGPT 并访问 OpenAI 获取 API Keys
- 动态SQL中if标签:test判断的null和“ “的问题
- centos8 安装oracle 11gR2
- 布尔教育mysql优化_布尔教育燕十八mysql优化视频课件源码分享
- nginx安装部署pc端限制访问配置
- 达人评测 rtx3050ti和gtx1650ti哪个好 3050ti和1650ti对比差多少
- 《数据挖掘原理与实战》教程网盘下载
- 智合同丨广告合同的审查技巧和方法