Feature Request: Enable half-closed with CloseWrite
- Dominant language
- Go
- Stars
- 5.5k
- Forks
- 372
- PR merge metrics
- No merged PRs in 30d
Description
I'm writing a TCP reverse proxy over Websocket and I'm trying to use this library.
However, it provides no way to close the write side only. That's needed to indicate end of stream (EOF), which gets mapped to a FIN on the TCP connection to the origin.
Looking at the code, I see that Close() runs the full handhsake. Perhaps CloseWrite could just send the close message with the normal status, but not wait for the response. And the code should not close the connection when receiving the close message. It should only do that on the explicit Close() or CloseWrite() call by the application code.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the existing Close() handshake and the code that handles received close messages. Define how an explicit CloseWrite() should signal the write-side EOF without waiting for a response or closing the connection, while preserving full closure through Close(); verify the behavior with focused WebSocket and TCP-proxy tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100