私はループバックAPIを使用しています。 server.js(サーバが - > server.js)は以下の通りである:私は1つのモデルファイルにmock.js作成したループバックAPI socket.ioで接続されたソケット(クライアント)にのみデータを送信する方法
var loopback = require('loopback');
var boot = require('loopback-boot');
var app = module.exports = loopback();
app.start = function() {
return app.listen(function() {
app.emit('started');
console.log('Web server listening at: %s', app.get('url'));
});
};
boot(app, __dirname, function (err) {
if (err) throw err;
if (require.main === module) {
//app.start();
app.io = require('socket.io')(app.start());
app.io.on('connection', function (socket) {
console.log('a user connected');
socket.on('disconnect', function() {
console.log('user disconnected');
});
})
}
});
一つの方法を含んでいる(共通 - > mock.js - >モデル)円グラフデータを定期的に送信します。
module.exports = function (Mock) {
Mock.getPieChartData = function (cb) {
var appIO = Mock.app.io
console.log('Inside Mock->getPieChartData')
var interval = setInterval(function() {
appIO.emit("pieData", getPieChartData());
}, 3000)
cb(null, getPieChartData())
}
function getPieChartData() {
.......
}
}
問題は、appIO.emit
は、接続されているすべてのクライアントにデータを送信しています。私はちょうど接続されたクライアントにデータを送信したい。すべてではない。私が行う場合socket.emit
server.js内部接続機能し、それは正常に動作します。しかし、モデル内部のメソッドからデータを出力したい(mock.js - >Mock.getPieChartData
)。私はこのメソッドの中で現在のソケットインスタンスを取得していません。