ist meine Anwendung nun nach "Lehrbuch" wie folgt strukturiert:Wie sende ich eine Socket-Nachricht von einem anderen Modul?
Datei app.js:
var app = require("express").express();
var api = require("./routes/api"); //just an example of one route
app.use("/api",api);
...
var server = app.listen(8081);
var sockets = require("./routes/sockets")(server);
Datei-Routen/api.js:
var router = require("express").router;
route.get("/test", function(req,res) {
res.render("test.pug");
}
router.get("/f", function(req, res) {
//...some processing...
//I want to send a socket message here to a given socket id !!!
//
}
module.exports = router;
Datei-Routen/Buchsen. js:
module.exports = function (server) {
var io - require("socket.io")(server);
io.use("....
io.on("connection",function(socket) {
socket.on("....
socket.on("....
}
}
Das obige funktioniert gut für meine Webseiten, zB /api/test
, die direkt mit Socket-Funktionen in sockets.js sprechen. Was ich jetzt brauche, ist in der Lage zu sein, eine Socket-Nachricht von api.js an eine spezifische Socket-ID zu senden, wie unter !!!
gezeigt. Wie mache ich es?
Danke, aber in der realen Welt ist es nicht praktisch, alles in einer Datei zu haben. Mein Problem war, wie man das io 'Server' Objekt anderen Modulen (Dateien) zugänglich macht, speziell api.js. Ich habe eine Umgehungsmethode ausgearbeitet, und es funktioniert. Kann die Antwort später veröffentlichen. –