2012-10-30 91 views
0

我想使用Node.js作为后端服务器运行以服务前端socket.io请求。Node.js充当前端应用程序的后端服务器

我发现的示例似乎只能从Node.js服务器运行页面。

<script src="/socket.io/socket.io.js"></script> 

上面JS包括由Node.js的服务,如何将它包含如果前端是不同的应用程序(例如PHP或静态网页)?我是否需要包含所有依赖的socket.io js库以使其工作?

+0

没有依赖库AFAIK。此外,你将不得不使用完整的URL为socket.io脚本(除非你做一些奇特的代理),因为Node.JS和PHP不能在同一个端口上侦听。 – freakish

+0

@freakish如果我打开socket.io.js,我可以看到如下代码:var client = require('socket.io-client');这是不正常的JavaScript代码,必须有一些库依赖。 – superche

+0

这是一个服务器端脚本,您正在查看不正确的文件。 URL:'/ socket.io/socket.io.js'被重定向到另一个文件,目前我找不到它。但你可以在浏览器中查看它。 – freakish

回答

2

我currrently运行的Apache/php与node.js/socket.io 如果这是你要做的,你可以通过在不同的端口上提供socket.io来实现它(假设为80)。

在node.js的,初始化socket.io监听端口8080上,例如:

var io = require('socket.io').listen(8080); 

我相信,在默认情况下,socket.io还能够方便地服务于它的静态客户端文件给你,这样在你html中,你可以:

<script src="http://yourhost:8080/socket.io/socket.io.js"></script> 

希望有帮助。

+0

谢谢,它的工作原理。 – superche

0

这一切都取决于您的服务器配置。您可以选择一条未被任何其他资源使用的Node.js后端路径,并将您的Web服务器配置为服务其他所有内容。

E.g.为Apache我用ProxyPass指令使一个地方的Node.js连接的不同端口上(绕过本地端口限制),但可能无法满足您的选项:

ProxyPass /help/server/ http://localhost:8002/ connectiontimeout=1500ms 
+0

我的问题是:我希望Node.js服务于前端应用程序(PHP或静态页面)socket.io请求的请求,并且我不知道如何正确包含socket.io库,导致我找到的所有示例运行前端由Node.js – superche

相关问题