簡體   English   中英

使用socket.io node.js在事件發射器內部的事件發射器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM