2017-07-06 5 views
0

は現在、私はこの方法をしようとしています:ソケットを使用しているときにnodejsのコードをインポートするには?

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 
    }); 
}); 

私はのsendMessageコードを別のファイルにする必要が欲しいです。だからどうする?

何私が試してみました:

//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 
}); 

それが正しいか間違っていますか?誰も助けることができますか? または新しい方法がありますか?

答えて

0

ハンドラを別のファイルに配置してエクスポートすることができます。

メインコード:

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); 
}); 

センドmessage.js:

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

が、私にも合格する必要がありますクライアント。 sendMessageでクライアントを渡す方法は? – uday214125

+0

私はsocket.on( "sendMessage"、function(data){ sendMessage(client、data); }})によって解決しました。 – uday214125

関連する問題