Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

167
Visualizações
how do I use socket outside the scope?

Please suggest me the best way to access socket in different file. I am using socket.io.

index.js

io.on("connection", socket => {
  socket.on("message", onMessageRecieved)
})

message.js

    const onMessageRecieved = (payload) => {
        try { 
           console.log(socket.id)
        } catch (error) {
            console.log(error);
        }
    }

I know this is one way to do this.

io.on("connection", socket => {
  socket.on("message", (payload)=>onMessageRecieved(payload, socket))
})

But is there any other way. I need that because I am saving user data to socket like socket.uid="ABC_NAME" and want to access after receiving message.

Edited : I was trying to do the same using middleware. The below code works But got error "Maximum call stack size exceeded" while doing same with socket.

//a = socket, x= socket.on()
    let a = { 
        z : 1,
        x : function(m=1, n) {
            n(m, a)
        }
    }
    
    let e = (arg1, arg2) => {
        console.log(arg1, arg2.z);
    }
    
    a.x(2, e)
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

You can use Closure like onMessageRecieved(socket)

index.js

io.on("connection", socket => {
  socket.on("message", onMessageRecieved(socket));
});

message.js

const onMessageRecieved = (socket) => {
  return (payload) => {
    try { 
      console.log(socket.id)
    } catch (error) {
      console.log(error);
    }
  }
}
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda