code: func Open(conn io.ReadWriteCloser, config Config) (*Connection, error) {
  	c := &Connection{
  		conn:      conn,
  		writer:    &writer{bufio.NewWriter(conn)},
  		channels:  make(map[uint16]*Channel),
  		rpc:       make(chan message),
  		sends:     make(chan time.Time),
  		errors:    make(chan *Error, 1),
  		deadlines: make(chan readDeadliner, 1),
  	}
  	go c.reader(conn)
  	return c, c.open(config)
  }
docs: /*
  Open accepts an already established connection, or other io.ReadWriteCloser as
  a transport.  Use this method if you have established a TLS connection or wish
  to use your own custom transport.
  
  */