Skip to content

Commit

Permalink
close: Implement CloseNow
Browse files Browse the repository at this point in the history
Closes #384
  • Loading branch information
nhooyr committed Oct 14, 2023
1 parent 1dbc141 commit 7c83782
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
9 changes: 9 additions & 0 deletions close.go
Expand Up @@ -102,6 +102,15 @@ func (c *Conn) Close(code StatusCode, reason string) error {
return c.closeHandshake(code, reason)
}

// CloseNow closes the WebSocket connection without attempting a close handshake.
// Use When you do not want the overhead of the close handshake.
func (c *Conn) CloseNow() (err error) {
defer errd.Wrap(&err, "failed to close WebSocket")

c.close(nil)
return c.closeErr
}

func (c *Conn) closeHandshake(code StatusCode, reason string) (err error) {
defer errd.Wrap(&err, "failed to close WebSocket")

Expand Down
3 changes: 3 additions & 0 deletions conn.go
Expand Up @@ -147,6 +147,9 @@ func (c *Conn) close(err error) {
if c.isClosed() {
return
}
if err == nil {
err = c.rwc.Close()
}
c.setCloseErrLocked(err)
close(c.closed)
runtime.SetFinalizer(c, nil)
Expand Down

0 comments on commit 7c83782

Please sign in to comment.