Hijacking FastHTTP connection to use `coder/websocket`?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
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
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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de coder/websocket
-
Must not wrap io.EOF Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
export wstest Abiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
Todos los issues de coder/websocket
Issues similares
-
agentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
agentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
microsoft/agent-framework-go#1179 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
[Bug]: OLLAMA_KEEP_ALIVE="5m" / "24h" crashes Ollama embedding and vision models with ValueError Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
infiniflow/ragflow#20223 · 1 reacción ·
-
bug needs triage pkg/translator/faro
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
open-telemetry/opentelemetry-collector-contrib#51484 · 1 comentario ·