gpt4 book ai didi

client-server - 与多个客户端的实时协作如何在使用中央服务器的操作转换的系统中工作?

转载 作者:行者123 更新时间:2023-12-04 06:16:45 25 4
gpt4 key购买 nike

我刚看完High-Latency, Low-Bandwidth Windowing in the Jupiter Collaboration System直到第 6 部分:全局一致性之前,我基本上都遵循了所有内容。这部分描述了如何扩展本文中描述的系统以适应连接到服务器的多个客户端。然而,解释非常简短,基本上是说如果中央服务器仅将客户端消息转发给所有其他客户端,系统就会工作。我真的不明白这是如何工作的。在发送给所有其他客户端的消息中将发送什么状态向量?服务器是否为每个客户端维护单独的状态向量?它是否为每个客户端在本地维护一个单独的小部件副本?

我能想到的简单例子是这样的设置:想象客户端 A、服务器和客户端 B,客户端 A 和客户端 B 都连接到服务器。首先,所有三个都有状态对象“ABCD”。然后,客户端 A 发送消息“在位置 0 插入字符 F”,同时客户端 B 向服务器发送消息“在位置 0 插入字符 G”。似乎只是将客户端 A 的消息中继到客户端 B,反之亦然,实际上并不能处理这种情况。那么服务器到底是做什么的呢?

最佳答案

我实际上想出了这将如何工作。在我的例子中,服务器为客户端 A 和客户端 B 保留了一个状态空间。 在服务器首先获取客户端 A 的消息的情况下,服务器获取带有状态向量 (0, 0) 的消息,插入 F,然后更新其状态向量对于 A 和 B,分别为 (1, 0) 和 (0, 1)(其中第一个数字是来自客户端的已处理消息数,第二个数字是来自服务器的已处理消息数处理)。然后服务器发送带有状态向量 (0, 0) 的“在位置 0 插入 F”(因为这是服务器收到消息时服务器在 B 状态空间中的状态)并获得“在位置 0 插入 G”从 B 以状态 (0, 0) 发送。由于服务器在 B 的状态空间中处于状态 (0, 1),它首先转换消息(类似地,由于 B 在接收服务器的消息时处于 (1, 0),它也转换从服务器)。因为必须设置转换,以便如果 xform(c, s) = (c', s') 然后 c' 应用于 s 等于 s' 应用于 c,B 和服务器最终处于相同的状态。服务器从 B 收到然后发送给 A 的消息也会发生同样的情况。

关于client-server - 与多个客户端的实时协作如何在使用中央服务器的操作转换的系统中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2733561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com