Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

115
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!