मैं एक्सप्रेसजेएस और सॉकेट.आईओ के आसपास अपना सिर लेने की कोशिश कर रहा हूं। लेकिन जब मैं कोशिश करते हैं और मेरी मार्गों में से एक से एक घटना फेंकना मैं socket.io के लिए कोई संदर्भएक्सप्रेसजेएस - रूट पृथक्करण के साथ सॉकेट.आईओ
var express = require('express')
, db = require('./db')
, mongoose = require('mongoose')
, models = require('./models/device')
, http = require('http')
, path = require('path')
, app = express()
, server = http.createServer(app)
, io = require('socket.io').listen(server)
, routes = require('./routes/myRoutes');
: मैं एक अलग फाइल में मेरे मार्गों जो मैं अपने app.js से शामिल मिल गया है।
exports.update = function(req, res){
return Item.findById(req.params.id, function(err, item) {
// Do some checks and save.
socket.emit('updated');
}
}
मुझे समझ में आता है कि यह क्यों उपलब्ध नहीं हो सकता है। बल्कि मुझे समझ में नहीं आता कि socket.io पर हैंडल प्राप्त करने का सबसे अच्छा तरीका app.js. के अलावा किसी अन्य फ़ाइल से है। मैं this question देख रहा था (रिकार्डो का जवाब देखें) लेकिन मैं अभी भी स्पष्ट नहीं हूं। आदर्श रूप में मैं ऐसा करने से बचना चाहता हूं:
मार्ग = आवश्यक ("मार्ग/myRoutes") (io);
आप http मॉड्यूल का उपयोग करने से बच सकते हैं, हालांकि socket.io को एक HTTP सर्वर की आवश्यकता है जिसे आप इसे एक्सप्रेस निर्भरता (3.xx) से कॉल कर सकते हैं: var app = express(), server = app.listen (3000), io = socket.listen (सर्वर); –
अद्यतन: feathers.js – backdesk