IM 即时通讯应用 关于 APP 端消息接收时序的问题 场景: A-> 发消息到服务器->服务器推送到 B A 是早上 8:00 发的消息 B 是下午 18:00 登录的 接收到服务端推送的消息
那么这个时候
在 B 的手机上第一条消息会显示一个时间 这个时间用 A 消息的发送时间 还是用 B 消息的本地时间
IM 即时通讯应用 关于 APP 端消息接收时序的问题 场景: A-> 发消息到服务器->服务器推送到 B A 是早上 8:00 发的消息 B 是下午 18:00 登录的 接收到服务端推送的消息
那么这个时候
在 B 的手机上第一条消息会显示一个时间 这个时间用 A 消息的发送时间 还是用 B 消息的本地时间
|
ZnemoAug 24, 2023
1
作为用户,直觉认为应该是 A 消息的发送时间。
|
|
kamtoAug 24, 2023
2
一般都用 A 投递消息到服务器成功的时间吧
|
|
richangfanAug 24, 2023
3
市面上这么多 IM 应用,哪有按接收时间算的
|
|
flyqieAug 24, 2023 via Android
4
敢用 B 的时间,绝对会被用户打爆。
太反直觉了。。用户体验极差。。 基本都是 A 消息的时间。 |
|
5
你没搞懂发送时间和接收时间(已读时间)的区别
|
|
opengpsAug 24, 2023
7
统一用服务器时间作为可信时间,求差提醒校准时间
|
|
BBCCBBAug 24, 2023
8
不应该用时间来排序. 服务器给消息生成一个趋势递增的 id 来排序.
|
|
BBCCBBAug 24, 2023
9
|
|
imhererAug 24, 2023
12
肯定是 A 发送消息的服务器时间啊。
你朋友早上 8 点发了一条消息,你晚上 6 点才收到。 你问你朋友问他是几点发的消息? |
|
SilentRhythmAug 24, 2023
13
A 消息的发送的服务器时间
|
|
corcreAug 24, 2023
14
肯定是统一以服务器接收到的时间为准啊
|
|
itskingnameAug 24, 2023
15
应该是服务器收到 A 消息 的时间。
|
|
zjw7skyAug 24, 2023
16
以服务器接收到 A 的时间为准
|
|
4kingRASAug 24, 2023
18
顺序按消息 id ,不会按时间戳的,时间戳(无论云侧还是端侧)都非常不靠谱
|
|
vzywAug 24, 2023
19
服务器存消息的时间戳, 跟时区无关。 客户端把时间戳转换为本地时间。
|
|
hiliyan0818Aug 24, 2023
20
按照产出的时间来确定
|
|
dudubabaAug 24, 2023
21
@rcj6056 服务器时间肯定是对的,那就是 A 发送后服务器收到消息,记录时间戳入库。然后等 B 上线后,触发了用户的上线订阅,然后开始拉取 B 的对应漫游消息,再推送给 B ,这个漫游消息的时间戳就是 A 发送时服务器记录的,此时会再次上传消息给服务器,告诉服务器已读(由客户端根据设备视窗实现),服务记录已读字段时间戳。
|
|
layxyAug 25, 2023
22
一切以服务器时间为准,否则 A 或则 B 修改本地时间可能出现时间错乱
|
|
wkongAug 25, 2023
23
既不是 A 消息的发送时间,也不是 B 消息的接受时间,是服务器收到 A 消息的时间。
看我的 Github ,我们专业做 IM 的。 |
|
LoitusAug 25, 2023
24
参考下 lamport 逻辑时钟,用服务器时间也是不对的,A 用户发消息 A B C ,可能到达服务器的时候 A B C 三条消息就乱序了 但是这三条消息有顺序的语意逻辑关系
|