[英]Use Socket.io and Node.js on existing page (with nginx)?
我正在嘗試使用實時API擴展現有網頁(NGINX + PHP5 + MySQL),該API會提供一些其他數據(例如,頁內聊天)。
經過一些獨立的測試腳本等之后,實際上我已經遇到了麻煩,只是為了建立一個簡單的聊天示例:Socket.io不想工作,顯然是因為依賴關系。
我試圖僅使用NodeJS / Socket.io來替代fdajax-我從沒打算在nodejs上構建我的整個(已經存在)頁面。 所以,我的主要問題是,如何“實現”這兩個庫,並使它們仍然有效(即使socket.io.js
不是由nodejs
交付的)
我當前的錯誤是在包含socket.io.js
時ReferenceError: require is not defined
ReferenceError: io is not defined
。 顯然,原因是require()
函數可能無法正常工作,因為-不錯,nodejs不能交付整個頁面,而PHP可以(因此,我想缺少了全部require()的東西)。
有人知道我如何才能使socket.io
正常工作,而沒有讓nodejs交付整個頁面,而是仍然使用現有的NGINX + PHP設置嗎?
我嘗試了幾件事,但找不到很好的提示。 基本上,目標是僅包含socket.io.js
(和其他必需的東西),通過指定的端口(8080或任何其他端口)連接到nodejs Web服務器,然后編寫一些代碼。
謝謝您的幫助。
這是另一個答案/問題的完整示例 https://stackoverflow.com/a/14709236/1489655
您可以為websocket流量設置代理。
tcp {
upstream websockets {
## node processes
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
server 127.0.0.1:8004;
check interval=3000 rise=2 fall=5 timeout=1000;
}
server {
listen 127.0.0.1:80;
server_name _;
tcp_nodelay on;
proxy_pass websockets;
}
}
來源: http : //www.letseehere.com/reverse-proxy-web-sockets
這應該允許您通過以下方式連接到socket.io
var socket = new io.Socket('ws://localhost');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.