IM交互中的ACK机制使用

IM在消息交互时,如果websocket断了,消息可能到了,也可能没到,怎么处理这个异常情况?
还是说在一端的send方法就会报错了,就知道了消息没有送出去?
我想讨论的就是是否需要增加一个ACK机制来确保消息成功到达接受人端
一个方法是加入ack机制
每收到一条消息就立即发回一个ACK

IM这一块需要整理客户端的组件结构
像负责页面渲染的,接受消息,发送消息,缓存消息队列,中断重连,异常情况处理等等
html5中有webworker多线程机制,也有本地存储机制,都可以利用起来加强IM的执行效果。
html5还可以监控每个端在线/脱机状态,这个正好可以加到联系人在线状态中
ajax请求改变后的页面状态可以作为一个新的url进行页面缓存,然后可以被回退出来,不需要发送任何请求。
但服务器端一定要无状态才行 

针对ack机制找了资料:

tcp报文到达确认(ack)机制 :http://blog.csdn.net/wjtxt/article/details/6606022

阿里巴巴 jstorm ack机制: http://www.aboutyun.com/thread-10892-1-1.html

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

IM消息ID技术专题(六):深度解密滴滴的高性能ID生成器(Tinyid)

1、引言在中大型IM系统中,聊天消息的唯一ID生成策略是个很重要的技术点。不夸张的说,聊天消息ID贯穿了整个聊天生命周期的几乎每一个算法、逻辑和过程,ID生成策略的好坏有可能直接决定系统在某些技术点上的设计难易度。有中小型IM场景下,消息ID可以简单处理,反正只要唯一就行,而中大型场景下,因为要考虑到分布式的性能、一致性等,所以要考虑的问题

IM交互中的ACK机制使用 - HelloWorld