तो मुझे socket.io के साथ एक्सप्रेस का उपयोग करके यह समस्या है। मुझे लगता है कि यह सुंदर आत्म व्याख्यात्मक है; मुझे बस सत्र प्राप्त करने और socket.io को पैरामीटर डेटा का अनुरोध करने की आवश्यकता है। यह ग्राहक पक्ष पर नहीं किया जा सकता क्योंकि कुछ कमरे निजी होने जा रहे हैं। कोई समाधान?sode.io के साथ अनुरोध डेटा को node.js और एक्सप्रेस के साथ कैसे मिलता है?
io.sockets.on('connection', function (socket) {
socket.join(ROOM ID)
socket.on('send message', function(data) {
NEED USER ID STORED IN session.user
}
})
app.get('/:roomid', function (req, res) {
//req.session.user = THE USER ID
//req.params.roomid = THE ROOM ID
})
फिर भी, मैं कमरे में शामिल होने के लिए socket.io को अनुरोध रूमिड कैसे प्राप्त करूं? –
सत्र स्टोर में 'get' विधि है जो सत्र आईडी को तर्क के रूप में लेती है, ताकि आप कुकी हेडर से सत्र आईडी प्राप्त कर सकें और सत्रस्टोर में इसे फ़ीड कर सकें। लेकिन इसके लिए आपको स्टोर को मैन्युअल रूप से प्रारंभ करने और विकल्पों में इसकी आपूर्ति करने की आवश्यकता होती है: var store = new express.MemoryStore; express.session ({store: store}); और socket.io में से आप store.get ('sessionid', फ़ंक्शन (त्रुटि, डेटा) {// यहां अपने सत्र तक पहुंच सकते हैं}) कर सकते हैं; – 3rdEden
कम से कम मेरे नोडजेएस पर, "हैंडशेक" में सॉकेट.ओओ: '... "url": "/ socket.io/1/?t=1355054837418" ...' पर कॉल के क्वेरी पैरा शामिल हैं। मुझे 'रेफरर' से क्वेरी-स्ट्रिंग पैराम लाने होंगे, उदाहरण के लिए, "आईडी" param: url.parse (socket.handshake.headers.referer, true) प्राप्त करने के लिए .query.id –