Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Hijacking FastHTTP connection to use `coder/websocket`?

Abierto
#506 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
30/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
go
Área
api, backend

Línea de trabajo

Comienza revisando FastHTTP's RequestCtx.Hijack y la API websocket.Accept mencionada en el issue, centrándote en cómo podría pasarse la net.Conn interceptada a la library. Determina cómo se representarían el ResponseWriter y el Request requeridos y, a continuación, verifica que un handler GET de FastHTTP pueda completar una actualización a WebSocket y atender una conexión.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

needs-info

Hello,

Instead of the Go standard net/http, I am using FastHTTP as my webserver, in order to upgrade to websockets using FastHTTP websocket. It currently looks something like this, which is called by the GET handler of my FastHTTP server:

func websocketUpgradeHandler(ctx *fasthttp.RequestCtx) {
	logger.Infof("Received WS request on %s", string(ctx.Path()))

	// Upgrade the connection to a websocket.
	err := websockets.Upgrader.Upgrade(ctx, func(conn *websocket.Conn) {
		// Create a new WS connection object and give it the new WS connection.
		wsConnection := &websockets.WSConnection{Conn: conn}

		// Start the inbound WS worker goroutine.
		wsConnection.WSInboundWorker()
	})
	if err != nil {
		logger.Errorf("Failed to upgrade WS connection: %s", err)
	}
}

According to [#229 (https://github.com/coder/websocket/issues/229), this should be doable with using FastHttp's fasthttp#RequestCtx.Hijack. From what I can tell, this will return the request context's underlying net.Conn object.

I am not sure how to make use of this within this websocket library. One total guess is somehow using websocket.Accept, but I don't know how to provide the required ResponseWriter and Request.

Some guidance on this would be much appreciated!

Lenguaje dominante
Go
Estrellas
5.5k
Forks
377
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de coder/websocket

Todos los issues de coder/websocket

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.