2013-04-17 44 views
0

我試圖用實時API擴展現有網頁(NGINX + PHP5 + MySQL),該API提供一些額外的數據(例如,頁面內聊天)。在現有頁面上使用Socket.io和Node.js(使用nginx)?

通過一些獨立的測試腳本等,我實際上已經有麻煩,只是爲了建立一個簡單的聊天示例:Socket.io不希望工作,顯然是因爲依賴關係。

我試圖使用的NodeJS/Socket.io 作爲替代fdajax - 我從來沒有打算建立我的整個(已經存在)上頁的NodeJS。所以,我的主要問題是,我怎麼能「實現」這兩個庫,而且還使他們的工作(即使通過nodejs交付socket.io.js心不是)

包括socket.io.js當我現在的錯誤是ReferenceError: require is not definedReferenceError: io is not defined。顯然,原因是功能require()可能不能正常工作,因爲 - 好吧,nodejs不是提供整個頁面,但PHP(所以,我想,整個require()的東西丟失)。

有人知道我怎麼能讓socket.io工作,但是讓nodejs提供整個頁面,但仍然使用已有的NGINX + PHP設置?

我嘗試了幾件事情,但還是找不到一個好的提示。目標基本上是,只包括socket.io.js(和其他必需的東西),通過指定的端口(8080,或其他)連接到nodejs webserver,然後編寫一些代碼。

感謝您的幫助。

+0

你可以嘗試具有案PHP平那裏的NodeJS需要更新,而且還有業務邏輯在PHP中(所以socket.io和其他只是一個交付機制)。或者嘗試研究http://socketo.me –

回答

0

這裏是另外一個答案/問題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'); 
相關問題