我正在构建一个silverlight应用程序,并希望添加p2p功能 - 允许用户发送彼此的数据.
关键问题实际上是打开客户端套接字以接受来自另一台机器的连接,而Silverlight不支持这一点,即使在浏览器外模式下,甚至在Silverlight 4中也是如此.如果你想做这样的事情,正如其他人提到的那样,您需要一个客户端可以连接到的公共服务器,它将在客户端之间来回代理消息.当然,Silverlight套接字仅限于端口4502-4532这一事实也意味着您受到防火墙策略的限制.
我们使用我们的应用程序(使用Silverlight 4)所做的是尝试连接Net.TCP的新支持(扩展得更好),然后如果失败,则回退到HttpDuplexBinding(它在HTTP上运行,因此更有可能通过防火墙).然后,我们编写了一个WCF服务,该服务从一个客户端接收消息并将其提交给其他订阅客户端.它不是P2P,但它允许类似的结果(除了P2P连接的所有实际好处).
如果你转向WPF,你放弃了Silverlight的可移植性,当然,你可以获得完整的服务器套接字支持,以及编写各种NAT遍历策略(如STUN和TURN)的能力.
| 归档时间: |
|
| 查看次数: |
1987 次 |
| 最近记录: |