聊天网站背后的想法

2024-04-18 08:57:07 发布

您现在位置:Python中文网/ 问答频道 /正文

这几天我一直在学习Python套接字,http请求/响应处理,我对服务器编程还是个新手,我有一个关于聊天网站背后的基本思想的问题。在

在聊天网站上,像是Omegle或Facebook的聊天,两个人如何互相交谈?他们自己电脑上的插座是直接互相连接的,还是。。。guy A向web服务器发送消息,服务器向guy B发送消息,反之亦然?在

因为在第一个场景中,两个用户都可以检索彼此的IP,而在第二个场景中,由于您正在连接到服务器,所以不能。。正确的?

非常感谢你帮我澄清这个困惑,我是个新手,我真的很感谢你们的帮助!在


Tags: 服务器webhttp消息facebook网站编程场景
2条回答

通常它们都连接到服务器。

这样做有几个原因。例如,假设您希望您的用户看到对话的最后10条消息。谁来存储这些信息?一个客户?两者都有?如果他们使用多台PC/设备,会发生什么?如果其中一个离线怎么办?好吧,你必须将消息发送到服务器,这样服务器将存储会话历史记录,始终可用。

另一个原因是,假设有一个用户离线。如果用户离线,你就无法联系他。你无法连接。因此,您必须向服务器发送消息,服务器将在联机后通知用户。
因此,您可能需要连接到服务器(存储公共信息、提供脱机消息、跟踪活动用户…)。

还有另一个原因,如果你想让两个用户直接连接,你需要其中一个启动一个服务器监听一个(公共IP):端口,让另一个连接到那个IP:端口。嗯,这是个问题。如果使用clients->;服务器模式,则不必担心这一点,因为您可以轻松地打开服务器中的端口,而无需路由器和NAT。在

大多数聊天将使用推送通知系统。它会跟踪聊天中的人,当它收到一条新消息到聊天室时,它会将它推送到当前聊天中的所有人。这样可以防止用户互相看到对方。在

相关问题 更多 >