1
oooolongtea OP |
2
webshe11 2020-11-09 04:41:14 +08:00 via Android
是的啊 普通聊天并不是端对端加密的,聊天记录都在云上
|
3
Jerami 2020-11-09 05:10:17 +08:00 via Android
文字根本占不了多少信息,图片的话可以参考百度网盘模式。
|
4
oooolongtea OP @Jerami 你的意思是,针对不同的用户,比如 id=99 的用户,每次他连到 telegram 上,有一个专门的云服务器,这个服务器专门是分配给这个用户的,然后这个用户的消息、图片都存在这个云服务器上,是这样的吗?
|
5
ochatokori 2020-11-09 07:31:14 +08:00 via Android
@oooolongtea #4 怎么可能。
文字消息占不了多少地方直接建索引存库,百度网盘模式大概是指记录图片散列值不同用户共享一个文件 |
6
delectate 2020-11-09 08:33:29 +08:00
@oooolongtea "这个服务器专门是分配给这个用户的",这成本得多高啊。
实际上很简单,表这样设计就行: table: group messageID|userID|sendTime|recvTime|Read|payloadType|payloadContent|delete 如果 userid 在消息内,且 recvTime (收到消息的时间)是空,已读为 False,一股脑推给该 userID 的客户端就行了。 |
7
BrettD 2020-11-09 09:09:39 +08:00 via iPhone
@oooolongtea 不是专门的服务器,大家的聊天信息都存在一起
|
8
EasonC 2020-11-09 11:32:05 +08:00 via iPhone
你应该是想知道为什么我的聊天记录自己删了,后台是能看到,然后才想问 telegram 的聊天记录是怎么保存的,我知道你是那个群里的谁了哈哈哈哈
|
9
oooolongtea OP @EasonC 我没明白你在说什么。 我只是想知道 telegram 的架构,因为我最近在看系统设计方面的书。
|
10
oooolongtea OP @delectate
谢谢谢谢。你的意思是数据库是线性数据库( mssql ),然后每次我连接到一个 gateway 的时候,这个 gateway 直接和数据库连接读取我这个账户的聊天记录? 示意图如下: 客户端 -- 网关( gateway) -- 数据库。 在网关在数据库之间难道没有服务器什么的吗? |
11
oooolongtea OP @BrettD 都存在一个服务器上,然后每次你连的时候,服务器会专门腾出一个空间来存放、显示你的了解记录,是这样吗?
|
12
BrettD 2020-11-10 10:18:43 +08:00 via iPhone
@oooolongtea 不用专门腾出一个空间呀,所有信息都存在一起
|
13
BrettD 2020-11-10 10:19:12 +08:00 via iPhone
@oooolongtea 显示聊天记录是客户端的事情
|
14
oooolongtea OP @BrettD 谢谢。那么是不是所有聊天记录都存在一个云服务器上,然后我登录的时候,云服务器会根据我的 user id,只显示我这个账户对应的聊天记录?
|
15
BrettD 2020-11-11 09:48:19 +08:00 via iPhone
@oooolongtea 没看懂你在说啥,显示聊天记录是客户端的事情,服务器又不显示聊天记录
|
16
oooolongtea OP @BrettD 比如我从网页端登录 telegram 的时候,以往的聊天记录都可以看到,这难道不是云服务器从数据库里提取出来的吗?
|
17
BrettD 2020-11-11 15:22:07 +08:00 via iPhone
@oooolongtea 服务器只管数据,显示聊天记录是客户端显示,不是服务器显示
|
18
oooolongtea OP @BrettD 谢谢回复。你的意思是,客户端(例如 iphone 上的 telegram app)把数据从数据库里下载下来,然后显示在 iphone 上。这个我理解。
但是 telegram web 版,我每次登陆上去,无论我在哪里的机器去登陆,我都可以看到同样的聊天记录,这是不是因为我登录后,和我机器相连的那个服务器,根据我的 user id,把我对应的聊天记录从数据库下载到了服务器上并且显示给我? |
19
BrettD 2020-11-12 08:41:36 +08:00 via iPhone
@oooolongtea 服务器是存储和传输数据的,不是显示聊天记录的,聊天记录是你电脑上的浏览器显示的
|
20
oooolongtea OP @BrettD 多谢你的耐心……我去看一看这背后运作的机制是什么。
|
21
lichengqi0805 2020-11-18 12:40:49 +08:00 via Android
信息的话有 message id
文件的话每个 Media 或者 document 也有对应的 id |