上行消息有序方案,maxClient+1=clientSeq。能否说一下发送方多端怎么应对?及时做clientSeq的同步吗? |
引用:JackJiang 发表于 2024-09-03 10:31 发送方多端 没啥用吧 |
引用:小菜菜 发表于 2024-09-02 23:00 上行消息小节通过maxClientId+1=clientId来防止网络抖动导致的先发后至服务端的问题,但是如果一条消息出问题,,后面的所有消息都可能受到连累,为什么不直接让客户端发一条消息,受到服务端ACK,再发下一条? |
引用:小菜菜 发表于 2024-09-03 00:03 如果消息序列号是有序的,这种情况在客户端进行顺序重排比较合理 |
引用:小菜菜 发表于 2024-09-02 23:25 所以这个“当前会话的max cid”最好是保存在客户端啦 |
如果3重试也失败了,之后需要用户重新触发,拿3可能变成了7,但是因为服务端的maxClientId还是2,怎么办,后面消息一直没法成功 |
客户端发送消息3456,如果3没处理,就算456先到,也没法处理对吧 |
客户端发送消息3456,如果3没处理,就算456先到,也没法处理对吧 如果3重试也失败了,之后需要用户重新触发,拿3可能变成了7,但是因为服务端的maxClientId还是2,怎么办,后面消息一直没法成功 |
关于防止重复,上行消息,客户端在一个会话内生成一个消息的递增id,服务端存储当前会话的max cid,对于群聊和多设备场景都会导致客户端维护消息递增id重复, |
你好,在上行消息中:依赖clientId, 问题1,如果客户端发送消息3456,如果3没处理,就算456先到,也没法处理对吧, 问题2: 如果3重试也失败了,之后需要用户重新触发,拿3可能变成了7,但是因为服务端的maxClientId还是2,怎么办,后面消息一直没法成功 在下行消息中: 问题1: 如果推送给b一直没成功,对于b来说没有感知,怎么回复ack |
引用:JackJiang 发表于 2023-04-10 18:24 感谢站长大大! |
引用:肥猫布里奇高 发表于 2023-04-10 18:06 简单帮你重新排了个版,你看看是不是阅读体验要好多了。其实还可以优化地更好 |
引用:JackJiang 发表于 2023-04-10 17:32 已修改 |
楼主你好,你这贴的是markdown语法,我这里不支持MD语法,你可以直接在文本编辑模式下,用编辑器里自带的效果去排版 |