Skip to content

Commit 7c83782

Browse files
committed
close: Implement CloseNow
Closes #384
1 parent 1dbc141 commit 7c83782

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

close.go

+9
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,15 @@ func (c *Conn) Close(code StatusCode, reason string) error {
102102
return c.closeHandshake(code, reason)
103103
}
104104

105+
// CloseNow closes the WebSocket connection without attempting a close handshake.
106+
// Use When you do not want the overhead of the close handshake.
107+
func (c *Conn) CloseNow() (err error) {
108+
defer errd.Wrap(&err, "failed to close WebSocket")
109+
110+
c.close(nil)
111+
return c.closeErr
112+
}
113+
105114
func (c *Conn) closeHandshake(code StatusCode, reason string) (err error) {
106115
defer errd.Wrap(&err, "failed to close WebSocket")
107116

conn.go

+3
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ func (c *Conn) close(err error) {
147147
if c.isClosed() {
148148
return
149149
}
150+
if err == nil {
151+
err = c.rwc.Close()
152+
}
150153
c.setCloseErrLocked(err)
151154
close(c.closed)
152155
runtime.SetFinalizer(c, nil)

0 commit comments

Comments
 (0)