簡體   English   中英

在現有頁面上使用Socket.io和Node.js(使用Nginx)嗎?

[英]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.jsReferenceError: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM