我正在使用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的)
感謝所有幫助
我以前看到的那個帖子。它不起作用在我的例子bcuz app.get('/',function())不適合我 – user1409508