2012-10-30 138 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

相關問題