Socket.io-client: ¿Cómo configurar encabezados de solicitud cuando se conecta al servidor?

Creado en 9 jul. 2014  ·  13Comentarios  ·  Fuente: socketio/socket.io-client

cómo configurar encabezados de solicitud personalizados cuando se conecta socket.io usa el cliente js

Feature request

Comentario más útil

@muhammadnasr Pase las opciones en el segundo argumento, siendo el primero la url:

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

Todos 13 comentarios

También necesito eso... ¿Encontraste alguna solución?

yo también estoy interesado en esto.

He visto cómo hacerlo en Java socket.io-client pero no en JS.

No funcionará con todos los métodos de transporte.
Si usa XHR/Ajax Polling, es posible, pero no por WebSockets en HTML5.

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

Estoy buscando una solución a.

¿Qué estás intentando lograr? ¿No puedes usar parámetros de URL?

Estoy tratando de escribir una prueba para verificar si los websockets se pueden espiar antes y después del middleware de autenticación.

Sin embargo, para autenticar con éxito, necesito enviar una sesión de cookies junto con la solicitud de actualización de http inicial. Funciona en el navegador, solo quiero que funcione también en mis pruebas de nodo.

¿Hay algún progreso en esto? ¿O alguna pista sobre cómo obtener/establecer la cookie-session/sessionId dentro de socket.io?

De hecho, lo hice funcionar. Los detalles del protocolo de enlace http inicial están disponibles en socket.request . Allí encontrarás la sesión. Por ejemplo, usando el middleware socket.io:

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

Desde la versión 2.0.0 , ahora puede establecer encabezados de solicitud con la opción extraHeaders :

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

¿Cómo puedo agregar URL a este ejemplo?
enchufe const = io({
opciones de transporte: {
sondeo: {
encabezados adicionales: {
'x-id-cliente': 'abc'
}
}
}
});

@muhammadnasr Pase las opciones en el segundo argumento, siendo el primero la url:

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

Genial.

¿Tiene un código de muestra para establecer encabezados para iOS y Android SDK?

Muchas gracias.

¿Se pueden configurar dinámicamente los encabezados?

¿Fue útil esta página
0 / 5 - 0 calificaciones