2017-07-06 4 views
0

Zur Zeit versuche ich, auf diese Weise:Wie in Code in Nodejs importieren, wenn Socket verwendet wird?

io.sockets.on('connection', function (client) { 
    console.log("client connected: " + client.id); 
    io.sockets.socket(client.id).emit("connected", client.id); 
    client.on("sendMessage", function (data) { 
     //send message code 
    }); 
}); 

Was ich nachrichts Code soll in separater Datei sein sollte. So wie es geht?

Was ich versucht habe:

//in first.js: 
var events = require('events'); 
var em = new events.EventEmitter(); 
var msg = require('./message.js'); 
var emitter = msg.em; 

io.sockets.on('connection', function (client) { 
    console.log("client connected: " + client.id); 
    io.sockets.socket(client.id).emit("connected", client.id); 
    emitter.emit('sendMessage'); 
}); 


//in message.js 

client.on("sendMessage", function (data) { 
    //return "Hello"; 
    //perform db operation 
}); 

, ob es richtig oder falsch ist? Kann jemand helfen? oder gibt es einen neuen richtigen Weg?

Antwort

0

Sie können den Handler in eine andere Datei einfügen und exportieren.

Hauptcode:

const sendMessage = require('./send-message'); 

io.sockets.on('connection', function (client) { 
    console.log("client connected: " + client.id); 
    io.sockets.socket(client.id).emit("connected", client.id); 
    client.on("sendMessage", sendMessage); 
}); 

send-message.js:

module.exports = function (data) { 
    //send message code 
}); 
+0

aber Client-i auch übergeben müssen. Wie übergebe ich den Client in sendMessage? – uday214125

+0

danke für antwort @rsp, ich habe gelöst von socket.on ("sendMessage", funktion (daten) { sendMessage (client, daten); }); – uday214125

Verwandte Themen