coder / coder/websocket

Feature Request: Enable half-closed with CloseWrite

Open
#507 6 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.