Skip to content

Websocket client closing handshake to support "force close" after given timetout #8883

@kachayev

Description

@kachayev

RFC455 defines that, generally, a WebSocket client should not close a TCP connection as far as a server is the one who's responsible for doing that. In practice, when I do not control the server, this might lead to connections leak if the server does not comply with the RFC.

RFC455#7.1.1 says

In abnormal cases (such as not having received a TCP Close from the server after a reasonable amount of time) a client MAY initiate the TCP Close.

I suggest to add forceCloseAfterMillis option to WebSocketClientHandshaker (and to WebSocketClientProtocolHandler appropriately) and schedule a channel close when necessary after CloseWebSocketFrame being flushed here. If there's no objections, I'm happy to provide a PR.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions