Socket.io-client: Como definir cabeçalhos de solicitação ao se conectar ao servidor?

Criado em 9 jul. 2014  ·  13Comentários  ·  Fonte: socketio/socket.io-client

como definir cabeçalhos de solicitação personalizados ao conectar socket.io usar cliente js

Feature request

Comentários muito úteis

@muhammadnasr Passe as opções no segundo argumento, sendo o primeiro o url:

const socket = io("/your-url-here", {
  transportOptions: {
    polling: {
      extraHeaders: {
        'x-clientid': 'abc'
      }
    }
  }
});

Todos 13 comentários

Eu também preciso disso... Você encontrou alguma solução?

Eu também estou interessado nisso.

Eu vi como fazer isso no Java socket.io-client, mas não no JS

Não funcionará com todos os métodos de transporte.
Se você estiver usando XHR/Ajax Polling, é possível, mas não para WebSockets em HTML5.

http://stackoverflow.com/questions/4361173/http-headers-in-websockets-client-apic

Estou procurando uma solução para.

O que você está tentando alcançar? Você não pode usar parâmetros de URL?

Estou tentando escrever um teste para verificar se os websockets podem ser espionados antes e depois do middleware de autenticação.

Para autenticar com sucesso, no entanto, preciso enviar uma sessão de cookie junto com a solicitação inicial de atualização http. Funciona no navegador, só quero que funcione nos meus testes de nó também.

Há algum progresso nisso? Ou alguma dica de como obter/definir o cookie-session / sessionId dentro do socket.io?

Na verdade, consegui fazer funcionar. Os detalhes do handshake http inicial estão disponíveis em socket.request . Lá, você encontrará a sessão. Por exemplo, usando o middleware socket.io:

io.use(function(socket, next){
    if (!socket.request.session){
      console.log('no session in socket')
      socket.disconnect();
    }
    next();
  });

Desde a versão 2.0.0 , agora você pode definir cabeçalhos de solicitação com a opção extraHeaders :

const socket = io({
  transportOptions: {
    polling: {
      extraHeaders: {
        'x-clientid': 'abc'
      }
    }
  }
});

Como posso adicionar url a este exemplo
const socket = io({
Opções de transporte: {
sondagem: {
cabeçalhos extras: {
'x-clientid': 'abc'
}
}
}
});

@muhammadnasr Passe as opções no segundo argumento, sendo o primeiro o url:

const socket = io("/your-url-here", {
  transportOptions: {
    polling: {
      extraHeaders: {
        'x-clientid': 'abc'
      }
    }
  }
});

Isso é ótimo.

Você tem código de exemplo para definir cabeçalhos para iOS e Android SDK?

Muito obrigado.

Os cabeçalhos podem ser definidos dinamicamente?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

ahadcove picture ahadcove  ·  7Comentários

najibghadri picture najibghadri  ·  7Comentários

exilonX picture exilonX  ·  7Comentários

patrickbussmann picture patrickbussmann  ·  6Comentários

gtk2k picture gtk2k  ·  3Comentários