我正在添加 在线语音聊天到 Silverlight 应用程序。我一直在审查通过在线搜索和论坛找到的当前应用程序、服务和 SDK。我发现其中大多数实现了客户端-服务器 (C/S) 模型,我试图理解为什么该模型与对等 (PTP) 模型相比。对我来说,PTP 会更可取,因为直接在对等点之间进行会更有效(更少的 IP 跃点,并且服务器计算机在此过程中不需要处理)并且不需要服务器及其成本和依赖性。我发现如果 PTP 证明不足,一些产品提供从 PTP 切换到 C/S 的能力。
当我想得更多时,我可以看到如果对话中涉及两个以上的对等点,C/S 可能会更好,然后服务器(据说具有更多带宽)可以更好地将每个对等点的传出流量中继到多个其他同行。在 C/S 多对多语音聊天中,每个对等方的上行宽带(这就是固有的瓶颈所在)只需承载每项语音流量一次,然后服务器将使用其优越的带宽将消息中继到多个其他同行。
但是,在一对一语音聊天的情况下,PTP 似乎是最好的。服务器不会减少两个对等点的带宽需求,只会增加不必要的开销、依赖性和成本。
在 一对一语音聊天 :
程序?
最后,您能推荐任何 Silverlight PTP 或 C/S 语音聊天产品吗?
在此先感谢您的任何信息。
最佳答案
• 点对点是最好的吗?
不,如果您在 LAN 环境中工作,但在 Internet 上,您需要 C/S 模型来处理客户端请求(客户端将在 NAT 之后)(服务器将在公共(public) IP 上),这很好。
• 服务器会提供任何仅客户端程序无法提供的有值(value)的东西吗?
是的,您无法与存在于 NAT 后面的客户端进行通信,并且如果他的 IP 不是静态的或未知的,因此最好的解决方案是 C/S 模型
你能推荐任何 Silverlight PTP 或 C/S 语音聊天产品吗?
是 检查此项目:http://www.socketcoder.com/ArticleFile.aspx?index=2&ArticleID=70作为C/S模型
关于silverlight - 在线语音聊天 : Why client-server model vs. 点对点模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2569080/