2012-04-10 25 views
0

我需要将数据从Web服务器传输到客户端。数据是收集并存储在服务器上的位置数据。客户将点击一个html页面上的按钮来'加入'开始接收数据。这些数据永远不会结束,并且至少有一个客户端需要接收数据24-7,尽可能少的中断。正在流式传输的数据将是客户特定的,因为每个客户端都不会收到完全相同的数据。从Web服务器流式传输数据,尝试使用vb.net和cgi

我已经在套接字上完成了几个多线程的tcp服务器,并且websockets是我想要攻击的方式,但是要求是必须在ie9中工作。

最初的要求是这是一个vb.net cgi可执行文件 - 但在测试期间,我还没有能够从vb.net可执行文件'使用'流,直到应用程序完成 - 就像它不能够即使我具体使用console.out.flush(),也需要刷新stdout。所以,如果这不是一个可行的选择,并且我可以用事实来支持这一点,那么我可以改变这个要求。

我也读了很多关于使用第三方服务器来流式传输像Orbit和APE这样的数据,我认为是其中的一些,但要求是针对1台服务器 - Web服务器。不需要其他硬件。

我很确定vb.net CGI不是基于我发现的理想解决方案,但它是可行的还是我需要放弃该解决方案并转向更新的技术ISAPI?任何想法或建议,即使他们只是指出我在正确的方向,非常感谢。

回答

0

你可能会走几条路。

如果你想去C#.Net,那么你可以看看Silverlight的解决方案。但它需要安装浏览器插件(如Flash)。这里的好处是,你可以通过普通的套接字发送数据,从服务器纯粹实时发送数据。在同一时间Silverlight使用.Net,因此它使一些代码被共享。这有助于开发过程。它在不同浏览器中的工作方式也是一样的。

您可能会看到类似的解决方案,使用带Java后端的Java Applet(甚至可以使用.Net,但同样使用相同语言时也更容易开发)。

另一个选择是使用WebSockets的前端,但正如你知道它不支持IE9和IE9以下(IE10承诺),Opera也不支持它。 后端可以按照你喜欢的方式完成。但请记住,WebSockets使用成帧,而对于恒定但很小的数据包来说效率不高,因为如果您发送10个字节,则会创建帧2-12个字节,并且TCP数据包标头的平均值为40个字节。

要支持较旧的浏览器,您可能需要查看长轮询,但它不像websockets那么可靠。

同样重要的是要计算将使用您的系统的数据量和用户的近似数量。根据计算结果,您将获得关于它的实际情况以及需要处理的服务器的大致信息。

+0

感谢您的输入。我真的想用Websockets来做到这一点,但我不知道ie9的要求是否可以取消。不管怎样,谢谢。 – jdg2012 2012-04-12 15:16:41

相关问题