MCPcopy
hub / github.com/coder/websocket / exportedClose

Method exportedClose

ws_js.go:248–272  ·  view source on GitHub ↗
(code StatusCode, reason string)

Source from the content-addressed store, hash-verified

246}
247
248func (c *Conn) exportedClose(code StatusCode, reason string) error {
249 c.closingMu.Lock()
250 defer c.closingMu.Unlock()
251
252 if c.isClosed() {
253 return net.ErrClosed
254 }
255
256 ce := fmt.Errorf("sent close: %w", CloseError{
257 Code: code,
258 Reason: reason,
259 })
260
261 c.setCloseErr(ce)
262 err := c.ws.Close(int(code), reason)
263 if err != nil {
264 return err
265 }
266
267 <-c.closed
268 if !c.closeWasClean {
269 return c.closeErr
270 }
271 return nil
272}
273
274// Subprotocol returns the negotiated subprotocol.
275// An empty string means the default protocol.

Callers 1

CloseMethod · 0.95

Calls 4

isClosedMethod · 0.95
setCloseErrMethod · 0.95
LockMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected