这些天我一直在学习Python套接字、http请求/响应处理,我还是服务器编程的新手,我有一个关于聊天网站背后的基本思想的问题。
在聊天网站上,比如Omegle或Facebook的聊天,两个人是如何交谈的?自己电脑上的插座是否直接连接,或者。。。男生A向网络服务器发送消息,服务器将此消息发送给男生B,反之亦然?
因为在第一种情况下,两个用户都可以检索到对方的IP,而在第二种情况中,由于您正在连接到服务器,因此无法。。正确的
非常感谢为我澄清这一困惑,我是一个新手,我真的很感谢你们的帮助!
通常它们都连接到服务器
这样做有几个原因。例如,假设您希望用户看到一次对话的最后10条消息。谁将存储此信息?一个客户?二者都如果他们使用多台电脑/设备,会发生什么?如果其中一个脱机,会发生什么?好吧,你必须将消息发送到服务器,这样服务器就会存储对话历史记录,并且始终可用
另一个原因是,假设一个用户处于脱机状态。如果用户处于脱机状态,则无法与他联系。您无法连接。因此,您必须向服务器发送消息,一旦用户联机,服务器就会通知用户
因此,您可能需要连接到服务器(存储常见信息、提供脱机消息、跟踪活动用户…)。
还有另一个原因,如果你想让两个用户直接连接,你需要其中一个启动一个在(公共IP):端口上侦听的服务器,让另一个在该IP:端口上连接。这是个问题。如果你使用客户端->服务器模式,你就不必担心这一点,因为你可以很容易地在服务器中打开一个端口,而无需路由器和NAT。
大多数聊天都会使用推送通知系统。它会跟踪聊天中的人,当它收到聊天中的新消息时,它会将其推送给当前聊天中的所有人。这可以保护用户不见面。