[英]Event emitter inside of event emitter using socket.io node.js
我有Web套接字服務器和OSC消息客戶端的情況。 當我從OSC服務器收到消息時,需要向所有套接字用戶發送數據。 到目前為止,我只是將OSC事件放置在socket.io連接函數中,因此造成了內存泄漏。 因為它為全局變量“ oscServer”創建了一個新的事件發射器。 我如何避免這種情況?
var io = require('socket.io')(server);
var oscServer = new osc.Server(oscPorts.server, oscIp.server);
io.on('connection', function (socket) {
oscServer.on(oscAdress.server, function (msg, rinfo) {
socket.broadcast.emit('moved', msg);
});
});
我會嘗試保存對socket
的引用,這是唯一的警告-您需要確保var socket
沒有被undefined
,所以我將使用一個promise
來確保在廣播事件之前定義了socket。
var io = require('socket.io')(server);
var oscServer = new osc.Server(oscPorts.server, oscIp.server);
var socket;
io.on('connection', function (s) {
socket = s;
});
oscServer.on(oscAdress.server, function (msg, rinfo) {
socket.broadcast.emit('moved', msg);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.