es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Safari no puede conectar al web socket seguro de Laravel.

Estoy ejecutando una aplicación en la que uso laravel-websockets, con el reemplazo de pusher y una instancia de websocket creada por mí mismo. Para SSL, utilicé un certificado letsencrypt y el enfoque de proxy inverso de nginx “Misma ubicación para websockets y contenidos web”. En mi servidor nginx, se habilitó TLS 1.2 y 1.3. Ahora, en Firefox y Chrome todo funciona bien, pero en Safari (versión 14.1.2, probado en macOS Mojave 10.14.6) obtengo el siguiente error en la consola:

WebSocket connection to 'wss://example.com/app/asdfasdf?protocol=7&client=js&version=7.0.3&flash=false' failed: Unexpected response code: 401

Estas son mis opciones de echo:

const echoOptions = {
  broadcaster: 'pusher',
  key: process.env.MIX_PUSHER_APP_KEY,
  cluster: process.env.MIX_PUSHER_APP_CLUSTER,
  wsHost: window.location.hostname,
  wsPort: 80,
  wssPort: 443,
  forceTLS: true,
  enabledTransports: ['ws', 'wss'], // <-- desactivar la fallback de la API de pusher
  disableStats: true,
};

window.Echo = new Echo(echoOptions);

He buscado mucho cualquier tipo de problema similar, pero no puedo encontrar una respuesta.

¡Cualquier idea o ayuda sería genial!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que la conexión WebSocket con el servidor en ‘wss://example.com/app/asdfasdf?protocol=7&client=js&version=7.0.3&flash=false’ falló con un código de respuesta inesperado de 401. Esto sugiere que puede haber un problema de autenticación, ya que 401 es típicamente el código de estado HTTP para “No autorizado”.

    Dado que el problema parece ser específico de Safari, es posible que haya algún problema de compatibilidad entre Safari y la implementación de WebSocket utilizada por Laravel WebSockets. Sin embargo, sin más información es difícil determinar la causa raíz del problema.

    Vale la pena verificar que las credenciales de autenticación son correctas para la conexión WebSocket con el servidor. Además, puede ser útil habilitar el registro o la depuración para el servidor de Laravel WebSockets para obtener más información sobre los intentos de conexión y cualquier error que pueda estar ocurriendo.

    También puede ser útil verificar si hay problemas conocidos o problemas de compatibilidad con Safari y Laravel WebSockets, y verificar si hay actualizaciones o parches relevantes que puedan abordar el problema.

Comments are closed.