2015-10-01 9 views
11

के लिए मिडलवेयर में ईवेंट विवरण कैसे प्राप्त करें मैं अपने नोड सर्वर पर प्रत्येक ईवेंट के लिए event name और parameter लॉग इन करने का प्रयास कर रहा हूं। इस उद्देश्य के लिए मैंनेsocket.io

io.use(function(socket, next){ 
    // how to get event name out of socket. 
}); 

अब, मैं घटना का नाम और तर्क प्राप्त करने का प्रयास करते समय अटक गया। मेरे लिए, यह एपीआई देव से आम मांग की तरह दिखता है, तो मैं यकीन है कि पुस्तकालय के लिए किसी तरह कि प्राप्त करने के लिए होना चाहिए हूँ, मैं डॉक्स और स्रोत को पढ़ने की कोशिश की है, लेकिन मैं सामान प्राप्त करने में सक्षम नहीं हूँ।

+0

क्या आपने यह देखने के लिए ['util.inspect'] (https://nodejs.org/api/util.html#util_util_inspect_object_options) का उपयोग करके 'सॉकेट' के गुणों को प्रिंट करने का प्रयास किया है, यह देखने के लिए कि क्या कोई ऐसी संपत्ति है जिसमें आपको आवश्यक डेटा है ? यह थोड़ा सा काम हो सकता है लेकिन अगर यह दस्तावेज में नहीं है तो सही संपत्ति ढूंढने का यह सबसे अच्छा तरीका है। – Wouter

+0

मैंने 'socket.request' का निरीक्षण करने की कोशिश की लेकिन' सॉकेट 'का निरीक्षण नहीं किया है। – guptakvgaurav

+0

मैं इसे भी जानना चाहता था। मैं प्रयोग किया जाता है [पुनरावर्ती-इटरेटर] (https://github.com/nervgh/recursive-iterator) में सभी गुण के माध्यम से जाना 'socket' रिकर्सिवली आपत्ति लेकिन स्ट्रिंग' "कनेक्शन" 'कि घटना के लिए नहीं मिल सका। Socket.io स्रोत कोड में एक 'ondecoded' है जो आईडी/संदेश के साथ' onpacket 'कहता है। और 'उपयोग' मिडलवेयर उसमें से किसी भी में शामिल नहीं प्रतीत होता है (वास्तव में ऐसा लगता है कि यह सब कुछ पहले होता है) तो शायद यह विवरण यहां उपलब्ध क्यों नहीं है। वास्तव में सराहना करेंगे अगर कोई इस पर अधिक आधिकारिक उत्तर प्रदान कर सकता है .. – laggingreflex

उत्तर

2

सॉकेट घटनाओं को ठीक से संभालने की आवश्यकता है, किसी भी मामले में यदि कोई ईवेंट संभाला नहीं जाता है तो कोई प्रतिक्रिया नहीं होगी।

var io = require('socket.io')(server); 
var sessionMiddleWare=(session({secret: 'secret key', resave: true, saveUninitialized: true,cookie: { path: '/', httpOnly: true, maxAge: 300000 },rolling: true})); 

app.use(sessionMiddleWare) 

io.use(function(socket, next) { 
    sessionMiddleWare(socket.request, socket.request.res, next); 
}); 

io.on('connection', function(socket) { // On Socket connection. 
    // inside this you can use different events 

    //event name and parameters can be found in socket variable. 

    console.log(socket.id) // prints the id sent from the client. 
    console.log(socket.data) // prints the data sent from the client. 

    // example event 

    socket.on('subscribe', function(room) { // Event sample. 
     console.log('joining room', room); 
     socket.room=room; 
     socket.join(room); 
    }); 
}) 

उम्मीद है कि इससे मदद मिलती है।