Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

108
Vistas
Realización de una solicitud de conexión Websocket del lado del cliente a un punto final Go HTTP que autentica y actualiza la solicitud a WS

El título es básicamente la pregunta que tengo. Estaba desarrollando mi servidor Go y agregué la biblioteca gorilla/ws al punto final http://qwerty:1234/api/ws para manejar las solicitudes de actualización de conexión.

Este punto final tiene un middleware antes que valida el token de portador del encabezado Auth.

Durante el desarrollo, pude personalizar la solicitud de conexión de WS en Postman para incluir el encabezado Auth. Y se conectó con éxito al punto final de WS.

Soy nuevo en WS. Y traté de desarrollar la conexión WS del lado del cliente, no puedes agregar encabezados.

¿Hay alguna solución para hacer lo que estoy intentando? ¿O hay alguna manera de emular lo que hace Postman? ¿Hay una biblioteca Javascript WS que pueda usar para hacer lo que estoy intentando?

código del servidor

 // Router r.Route("/api", func(r chi.Router) { r.Group(func(r chi.Router) { r.Use(utils.AuthMiddleware) r.Get("/contacts", controller.GetContacts) r.Get("/ws", websocket.Handler) r.Get("/ws/clients", websocket.TestHandler) // Socket connection upgrade func Handler(w http.ResponseWriter, r *http.Request) { userDetails := r.Context().Value("userDetails").(jwt.MapClaims) // Populated by middleware userId := int64(userDetails["UserId"].(float64)) if _, userPresent := wsClientsById[userId]; userPresent { http.Error(w, "User already connected", http.StatusForbidden) return } conn, err := upgrader.Upgrade(w, r, nil) if err != nil { http.Error(w, "Error establishing Websocket connection", http.StatusInternalServerError) fmt.Println(err) return } conn.SetReadLimit(4096) wsClientsById[userId] = conn wsClientsByConn[conn] = userId go wsConnHandler(conn) }
about 4 years ago · Santiago Gelvez
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda