G-WAN是否为每个用户请求启动新的NodeJS实例? (即,如果您将JavaScript用于servlet)例如,如果100个用户在特定脚本处理的同时请求操作。
我的主要问题是使用非C / C ++语言编写G-WAN脚本...可以从JavaScript servlet中使用sendfile
吗?我想将大文件流式传输到不会在www
文件夹中的客户端,而是从服务器上的指定文件路径传输。这可能吗?如果没有,NodeJS的流媒体可以在G-WAN中使用吗?
答案 0 :(得分:1)
G-WAN是否为每个用户请求启动了一个新的NodeJS实例?
与其他语言(C/C++, Objective-C/C++, C#, PH7, Java, and Scala
)不同,Javascript
不作为模块加载,而是作为CGI流程执行,就像Zend PHP
或Perl
一样。
所以,是的,除非你使用caching(无论是G-WAN还是你的),否则Node.JS的扩展性会很差。
可以从JavaScript servlet中使用sendfile吗?
是的,但是G-WAN拥有自己的异步机制,它的效率肯定更高[G-WAN方式" (正如Ken所建议的那样。)
如果你坚持使用来自Javascript的sendfile(),那么请记住,你必须在非阻塞模式下使用它并自己管理异步事件(同步调用阻塞当前的G-WAN工作线程)。 / p>
我可以将文件流式传输到不在www文件夹中的客户端吗?
是的,您可以使用系统symlink
将外部文件夹映射到/ www资源 - 或者您可以在G-WAN handler或servlet内流式传输内容
答案 1 :(得分:0)
您可以从G-WAN流式传输内容;您可以从Node.JS流式传输内容。选择一个或另一个取决于您有什么其他要求,因为要么支持您提到的负载类型的流内容(假设合理的系统资源)。我有一个小的Node.JS服务器做一些URL重写和反向代理服务我们从第三方许可的内容。它完全独立于G-WAN服务器,HAProxy路由请求适当。从我刚刚在G-WAN下学到的JavaScript知识,我不想走那条路。根据您的描述,我将坚持使用C(或可能是C ++或G-WAN可以作为动态模块加载的其他一个)的纯G-WAN方法来编写servlet和处理程序。
从个人经验来看,我推荐C的简洁性,性能和紧凑性。 C ++也是一个不错的选择。 G-WAN Servlet和Handler通常是非常小的代码片段 - 特别是与编写完整的应用程序相比 - 所以即使您不是这些语言的专家,也可以在这里使用C或C ++。
看看G-WAN User's Manual底部附近的FLV流媒体的10行C代码实现。其他相关示例包括stream1.c,stream2.c和stream3.c。
首先,我建议在10-second G-WAN installation process之后下载并安装G-WAN,然后调整servlet示例代码以提供您拥有的一些内容(即根据需要更改路径和文件名)。
祝你好运!答案 2 :(得分:0)
通过在servlet中直接嵌入VM(Spidermonkey)来使用JS还有其他选择。