現在、私は次のようなゲッター/セッターソケットモジュールを持っています
var socket;
module.exports.getSocket = getSocket;
module.exports.setSocket = setSocket;
function getSocket() {
return socket;
}
function setSocket(sock) {
if (undefined == socket) socket = sock;
}
app.jsでは次のように設定しました
var sio = require('./lib/socket');
var io = require('socket.io').listen(app);
io.sockets.on('connection', function (socket) {
sio.setSocket(socket);
});
私のモジュールでは、次のように使用します
sio = require('./lib/socket');
socket.getSocket().broadcast.emit(...);
これを行うためのより良い方法はありますか?
編集:クライアントソケットによって開始されないメッセージを起動する問題の一般的な解決策が欲しいです。たとえば、外部ソースから株価を取得し、価格の更新時にイベントを発生させたいとします。クライアントによって開始されないので、どうすればソケットにアクセスできますか?または、POSTリクエストに応答してソケットメッセージを送信したいとします。もう一度、ソケットにアクセスする方法がわかりません。