func (c *Conn) Close() (err error) {
	c.Lock()
	defer c.Unlock()
	c.bfr.Close()
	go func() {
		c.frame.Println("linger starting")
		<-time.NewTimer(LingerDuration).C
		c.frame.Println("linger expired, carrier closed")
		c.sub.Kill()
		close(c.ach)
	}()
	return nil
}
// Close closes the connection semantically. The connection object will linger for a short while
// to ensure that the closure event is delivered to the remote endpoint.
Close closes the connection semantically. The connection object will linger for a short while
to ensure that the closure event is delivered to the remote endpoint.
// Close closes the connection semantically . The connection object will linger for a short while // to ensure that the closure event is delivered to the remote endpoint .
func (c *Conn) Close() (err error) {
	c.Lock()
	defer c.Unlock()
	c.bfr.Close()
	go func() {
		c.frame.Println("linger starting")
		<-time.NewTimer(LingerDuration).C
		c.frame.Println("linger expired, carrier closed")
		c.sub.Kill()
		close(c.ach)
	}()
	return nil
}
func ( c * Conn ) Close ( ) ( err error ) { c . Lock ( ) defer c . Unlock ( ) c . bfr . Close ( ) go func ( ) { c . frame . Println ( " " ) <- time . NewTimer ( LingerDuration ) . C c . frame . Println ( " " ) c . sub . Kill ( ) close ( c . ach ) } ( ) return nil }
Close closes the connection semantically.
Close closes the connection semantically .