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

821
Visualizações
Enviar cookies con socket.io-client

Estoy tratando de conectarme a un websocket. Me gustaría agregar cookies del inicio de sesión real del sitio web, para que el servidor (que NO es mío), sepa quién soy (los eventos son específicos de la cuenta).

 var opts = { extraHeaders: { 'Cookie': "_ga=GA1.2.17432343994.1475611967; _gat=1; __cfduid=dc232334gwdsd23434542342342342475611928" }, } function socket() { var socket = io(websiteURL, opts); var patch = require('socketio-wildcard')(io.Manager); patch(socket); socket.on('connect', function () { console.log(" > [Connected]"); }); socket.on('*', function (data) { console.log(" >>> " + data); }); socket.on('disconnect', function () { console.log(" > [Disconnected]"); }); }

La conexión en sí funciona bien, ya que estoy recibiendo los eventos públicos del sitio web (no por cuenta).

Traté de encontrar el problema usando el inspector de nodos.

Esta es la primera petición que se está haciendo. Parece que los encabezados de solicitud están vacíos y faltan las cookies.

Inspector de nodos: ingrese la descripción de la imagen aquí

Uso normal del sitio web en Chrome: http://i.imgur.com/96h0PEV.jpg

(Sí, estoy enviando menos cookies en el nodo, solo para ver si aparecen en las cookies de solicitud)

¿Estoy haciendo algo mal? ¿Cómo agregaría cookies de la manera correcta?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Tuve un problema similar, creo que sus opciones tienen que configurar la cookie para el método de transporte de "sondeo", así:

 var opts = { transportOptions: { polling: { extraHeaders: { 'Cookie': '_ga=GA1.2.17432343994.1475611967; _gat=1; __cfduid=dc232334gwdsd23434542342342342475611928' } } } }

Conseguí que esto funcionara con el siguiente ejemplo de servidor-cliente todo en uno:

 const express = require('express'); const http = require('http'); const app = express(); const httpServer = new http.Server(app); const socketServer = require('socket.io')(httpServer); const LISTEN_PORT = 4444; socketServer.on('connection', socket => { const cookieString = socket.handshake.headers.cookie; console.log('server connection ' + (cookieString || '')); setInterval(() => socket.emit('ping', Date.now()), 1000); }); let socketClient = undefined; httpServer.listen(LISTEN_PORT, 'localhost', () => { console.log('web server started') const options = { transportOptions: { polling: { extraHeaders: { 'Cookie': 'hello=world' } } } } socketClient = require('socket.io-client').connect('http://localhost:'+LISTEN_PORT, options); socketClient.on('ping', (data) => console.log('ping ' + data)); });
over 4 years ago · Santiago Trujillo Relatório

0

Socket.io agregó recientemente una opción extraHeaders al cliente:

 Client(url, { extraHeaders: { Cookie: `CookieName=CookieValue;`, }, })
over 4 years ago · Santiago Trujillo 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