我想使用Node.js作爲後端服務器運行以服務前端socket.io請求。Node.js充當前端應用程序的後端服務器
我發現的示例似乎只能從Node.js服務器運行頁面。
<script src="/socket.io/socket.io.js"></script>
上面JS包括由Node.js的服務,如何將它包含如果前端是不同的應用程序(例如PHP或靜態網頁)?我是否需要包含所有依賴的socket.io js庫以使其工作?
我想使用Node.js作爲後端服務器運行以服務前端socket.io請求。Node.js充當前端應用程序的後端服務器
我發現的示例似乎只能從Node.js服務器運行頁面。
<script src="/socket.io/socket.io.js"></script>
上面JS包括由Node.js的服務,如何將它包含如果前端是不同的應用程序(例如PHP或靜態網頁)?我是否需要包含所有依賴的socket.io js庫以使其工作?
我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>
希望有幫助。
謝謝,它的工作原理。 – superche
這一切都取決於您的服務器配置。您可以選擇一條未被任何其他資源使用的Node.js後端路徑,並將您的Web服務器配置爲服務其他所有內容。
E.g.爲Apache我用ProxyPass指令使一個地方的Node.js連接的不同端口上(繞過本地端口限制),但可能無法滿足您的選項:
ProxyPass /help/server/ http://localhost:8002/ connectiontimeout=1500ms
我的問題是:我希望Node.js服務於前端應用程序(PHP或靜態頁面)socket.io請求的請求,並且我不知道如何正確包含socket.io庫,導致我找到的所有示例運行前端由Node.js – superche
沒有依賴庫AFAIK。此外,你將不得不使用完整的URL爲socket.io腳本(除非你做一些奇特的代理),因爲Node.JS和PHP不能在同一個端口上偵聽。 – freakish
@freakish如果我打開socket.io.js,我可以看到如下代碼:var client = require('socket.io-client');這是不正常的JavaScript代碼,必須有一些庫依賴。 – superche
這是一個服務器端腳本,您正在查看不正確的文件。 URL:'/ socket.io/socket.io.js'被重定向到另一個文件,目前我找不到它。但你可以在瀏覽器中查看它。 – freakish