快速问题:做大多数聊天应用程序(即。AIM、Skype、Oovoo)使用对等UDP交换与其他用户交谈,还是使用与服务器的回显TCP连接?还是介于两者之间的某种组合?
发布于 2011-09-18 23:16:27
传统上,大多数应用程序使用轮转式解决方案(即,通过服务器通信)来克服NAT穿越问题。由于聊天不会消耗太多带宽,因此服务器可以支持数千种通信。
但是现在P2P已经发展,NAT穿越问题现在已经被很好地理解了,一些人使用直接的UDP通信,只要用户的NAT允许这种通信(即,STUN式的通信)。不过,他们仍然需要一个中央服务器来打洞。当需要传输大量数据时,直接通信也很有用。
我相信,可以公平地说,大多数现代框架都使用了两者的组合。
发布于 2011-09-18 08:19:13
当您需要小的数据片段时,比如文本消息,就不需要使用P2P。数据可以从client1传输到服务器,也可以从服务器传输回client2。
当您需要在客户端之间快速传输数据时,例如VoIP (IP语音)或文件传输,您将使用P2P。
发布于 2011-09-18 08:22:20
一个非常标准的IM协议是XMPP。我知道Google Talk和其他一些聊天领域的大牌都在使用它。
https://stackoverflow.com/questions/7458691
复制相似问题