2015-06-18 41 views
0

我正在使用PHP + NodeJS(它們之間的通信是通過REDIS pub/sub進行的)中的應用程序。大多數代碼都是用PHP編寫的,NodeJS在後臺運行一些任務。
我不知道是否使用PHP + NodeJS這樣的東西是好主意,但我想要這樣的東西:如何獲取PHP和NodeJS的相同請求標頭

用戶打開一個網站,在這一刻Node.js正在檢查用戶是否登錄。如果是這樣,它從數據庫(REDIS)抓取一些東西,我們稱之爲'模式'並將其存儲在臨時哈希/列表中。 然後其他用戶發佈類似問題的內容。這個問題通過pub/sub發送給NodeJS,Node正在檢查該問題是否與任何活動模式(來自臨時散列/列表的模式)匹配。

這裏是我無法弄清楚

我不能在的NodeJS

得到PHPSESSID一個問題,我曾嘗試:

var app = express(); 
var server = app.listen(3001); 
var io = socket.listen(server); 

// #1 
io.sockets.on('connection', function(socket){ 
    console.log('New user!'); 
    // Here I want to check if user is logged by checking PHPSESSID 
    console.log(socket.request.headers.cookie); // <-- this one doesn't return PHPSESSID (It's return only io cookie) 
}); 

// #2 
io.set('authorization', function (handshakeData, callback) { 
    var cookie = handshakeData.headers.cookie; 
    console.log(cookie); // <--- doens't return PHPSESSID (It's return only io cookie) 

    callback(null, true); 
}); 

// #3 
var options = {method: 'GET', host: 'my-app.com', port: 80, path: '/'}; 
var req = http.request(options, function(res) { 
     console.log(JSON.stringify(res.headers)); 
     // PHPSESSID is different then PHPSESSID in browser 
    } 
); 
req.end(); 

有什麼辦法我可以獲取當前包含PHPSESSID的請求頭?或者有沒有辦法同時運行PHP和Node?所以我可以在PHP和NodeJS中獲得相同的HTTP請求?既然你已經在使用Redis的(我使用Nginx的)

感謝所有幫助

回答

相關問題