有没有人知道无服务器聊天客户端背后的逻辑能够互联不局域网但互联网?它不需要能够检测到世界范围内的其他用户,它只需要获得某种唯一标识即可连接到用户,如IP或某种类型的唯一ID。
答案 0 :(得分:2)
首先,您需要来自某个地方的部分信息。你不能只是打开它并开始聊天而不知道每个人在哪里。您可能有一个节点一直处于联机状态,并且知道其他一些节点。其他节点会知道其他节点,而那些节点会知道更多等等。无论您是否将该静态节点称为“服务器”,这都是有争议的。它可能只是您朋友的节点,也可能是公开的IP。一旦启动并运行,您将不再需要启动节点。
在这种类型的系统中,如果除了IP地址之外还需要某种标识,则需要查询邻居。 IP地址也有其自身的缺点,因为在家庭DSL连接的路由器后面可能有两个人。唯一ID需要在整个网格上进行递归查询,以确定您的ID是否唯一。
在这种类型的系统中,您只需要知道有限的人员子集,以便与任何人聊天,因为您可以查询您周围的每个人(并且查询以递归方式发生)查询该人员的位置。存储在本地节点上的人数的人为限制可以使用最近最少使用的算法实现,类似于CPU缓存。