从Web服务器流式传输数据,尝试使用vb.net和cgi

时间:2012-04-10 15:29:07

标签: streaming

我需要将数据从Web服务器传输到客户端。数据是收集并存储在服务器上的位置数据。客户端将单击html页面上的按钮以“选择加入”以开始接收数据。这些数据永无止境,并且至少有一个客户端需要接收数据24-7,并尽可能少地休息。流式传输的数据将是客户端特定的,因为每个客户端都不会收到完全相同的数据。

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

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

我还阅读了很多关于使用第三方服务器来流式传输数据的信息,如Orbit和APE我认为其中有几个,但要求是1台服务器 - 网络服务器。不需要其他硬件。

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

1 个答案:

答案 0 :(得分:0)

你可能会走几条路。

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

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

另一种选择是使用WebSockets进行fron-end,但是你知道它在IE9及以下版本中不受支持(IE10承诺),Opera也不支持它。 后端可以按照您的喜好完成。但请记住,WebSockets使用成帧,对于常量但很少的数据包,它效率不高,因为如果发送10个字节,那么它将创建2-12个字节,并且TCP数据包标头平均为40个字节。

要支持旧浏览器,您可能需要查看长轮询,但它不如websockets可靠。

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