मैं कुकीज़ का उपयोग करने और express.js से परहेज किए बिना node.js और socket.io के माध्यम से websockets पर सत्र-सत्र बनाना चाहता हूं, क्योंकि क्लाइंट वातावरण में क्लाइंट भी नहीं चल रहे हैं। किसी ने इसे पहले से ही किया है या अवधारणा के सबूत के साथ कुछ अनुभव मिला है?एक्सप्रेस.जेएस के बिना सॉकेट.ओ सत्र?
उत्तर
तो यह उपयोगी हो सकता है, https://github.com/LearnBoost/socket.io/wiki/Authorizing
आप सभी सत्र चर का ट्रैक रखने के सकता है और विशिष्ट में निम्नलिखित उपलब्ध के संयोजन का उपयोग उपयोगकर्ताओं की पहचान handshakeData
{
headers: req.headers // <Object> the headers of the request
, time: (new Date) +'' // <String> date time of the connection
, address: socket.address() // <Object> remoteAddress and remotePort object
, xdomain: !!headers.origin // <Boolean> was it a cross domain request?
, secure: socket.secure // <Boolean> https connection
, issued: +date // <Number> EPOCH of when the handshake was created
, url: request.url // <String> the entrance path of the request
, query: data.query // <Object> the result of url.parse().query or a empty object
}
इस उदाहरण के रूप में अच्छी तरह से मदद मिल सकती है , बस अपने गैर-ब्राउज़र क्लाइंट अलग-अलग तरीके से जानकारी प्रदान करते हैं:
अच्छा बिंदु, अगर मैं क्लाइंटसाइड पर req.headers में एक sessionid जोड़ सकता हूं और इसे प्राधिकरण पर मान्य कर सकता हूं। इसलिए मुझे req और res vars से decunpled एक स्टैंडअलोन sessionhandler लिखना है। हो सकता है कि मैं सत्र-सत्र के रूप में कनेक्ट-सत्र को सत्रस्थानों और अन्य चीजों के साथ संगत होने के लिए उपयोग कर सकूं। क्या आप जानते हैं कि मैं क्लाइंट साइड पर हेडर में मूल्य कैसे जोड़ सकता हूं? एक बार मेरा वेबसाइकिल कनेक्शन अधिकृत हो जाने पर, क्या यह एक ही http-request के रूप में उतना ही सुरक्षित है जितना कि हर सत्र अपने सत्र को मान्य करता है? –
सॉकेट.ओ कनेक्शन स्थापित होने से पहले, एक हैंडशेक तंत्र है, डिफ़ॉल्ट रूप से, सभी ठीक से आने वाले अनुरोध सफलतापूर्वक हाथ हिलाते हैं। हालांकि हैंडशेक के दौरान सॉकेट डेटा प्राप्त करने का एक तरीका है और आने वाली कनेक्शन अनुरोध को स्वीकार या अस्वीकार करने वाली आपकी पसंद के आधार पर सही या गलत लौटाता है। यहां socket.io दस्तावेज़ों का उदाहरण दिया गया है:
क्योंकि प्राधिकरण के बाद हैंडशेकडेटा संग्रहीत किया जाता है, आप वास्तव में इस ऑब्जेक्ट से डेटा जोड़ या निकाल सकते हैं।
var io = require('socket.io').listen(80);
io.configure(function(){
io.set('authorization', function (handshakeData, callback) {
// findDatabyip is an async example function
findDatabyIP(handshakeData.address.address, function (err, data) {
if (err) return callback(err);
if (data.authorized) {
handshakeData.foo = 'bar';
for(var prop in data) handshakeData[prop] = data[prop];
callback(null, true);
} else {
callback(null, false);
}
})
});
});
कॉलबैक का पहला तर्क समारोह त्रुटि है, तो आप एक स्ट्रिंग यहाँ प्रदान कर सकते हैं, जो स्वत: ग्राहक मना कर देगा, तो शून्य पर सेट नहीं। दूसरा तर्क बूलियन है, भले ही आप आने वाले अनुरोध को स्वीकार करना चाहते हैं या नहीं।
- 1. एक्सप्रेस.जेएस
- 2. एक्सप्रेस.जेएस
- 3. सत्र के बिना Grails
- 4. एक्सप्रेस.जेएस-आधारित ऐप
- 5. सॉकेट.ओ प्रमाणीकरण फ़ंक्शन सत्र डेटा अपडेट नहीं कर रहा है
- 6. सॉकेट.ओ सॉकेट
- 7. कुकीज़ के बिना PHP सत्र
- 8. सॉकेट.ओ क्लाइंट डीबगिंग?
- 9. एक्सप्रेस.जेएस रूटिंग: वैकल्पिक स्पैट परम?
- 10. नोड.जेएस सिद्धांत - नोड.जेएस, एक्सप्रेस.जेएस, पासपोर्ट.जेएस
- 11. क्या मेरे पास प्रमाणीकरण के साथ हैप्रोक्सी और सॉकेट.ओ के साथ चिपचिपा सत्र हो सकते हैं?
- 12. सॉकेट.ओ त्रुटि प्रबंधन
- 13. सॉकेट.ओ सुरक्षा मुद्दे
- 14. सॉकेट.ओ और नोड
- 15. मैं एक्सप्रेस.जेएस के बिना जेड के साथ आंशिक कैसे प्रस्तुत करूं?
- 16. सत्र राज्य के बिना एएसपी.NET आवेदन खरीदना?
- 17. नोडजेएस + सॉकेट.ओ कनेक्शन ड्रॉप/रीकनेक्टिंग?
- 18. सॉकेट.ओ डिस्कनेक्ट पर पुनः कनेक्ट?
- 19. रेडिस और नोड.जेएस और सॉकेट.ओ प्रश्न
- 20. सत्र समय समाप्ति के बिना सर्वर से डेटा प्राप्त करें
- 21. ब्राउज़र के बिना प्रोग्रामिक रूप से HTTP सत्र जीवित रखें
- 22. क्या कोई सॉकेट.ओ पोर्ट है डार्ट?
- 23. सॉकेट.ओ स्ट्रीम को नोड प्रतिलिपि स्ट्रीम
- 24. रीयल टाइम ऐप्स: सॉकेट.ओ बनाम पुशहेप
- 25. सत्र
- 26. सॉकेट.ओ ग्राहक से दिल की धड़कन के अलावा निष्क्रियता की जांच
- 27. सत्र
- 28. 'सत्र' सत्र स्टोर
- 29. सॉकेट.ओ प्रसारण समारोह और रेडिस पब/उप आर्किटेक्चर
- 30. सफारी और क्रोम पर सॉकेट.ओ कनेक्शन धीमा क्यों है
http://socket.io/ पर उदाहरण एक्सप्रेस का उपयोग नहीं करते हैं, लेकिन मुझे लगता है कि आप पहले से ही जानते हैं। आपको किस अतिरिक्त जानकारी की आवश्यकता है? –