code: func ObeyIdleTimeout(conn net.Conn, timeout time.Duration, ownerName string) net.Conn {
  	return &TimeoutConn{
  		Conn:            conn,
  		TimeoutDuration: timeout,
  		OwnerName:       ownerName,
  	}
  }
docs: // ObeyIdleTimeout wraps an existing network connection with timeout-obeying
  // Write() and Read() - it will drop the connection after 'timeout' on idle
  //
  // Example:
  // ObeyIdletimeout(conn, time.Second * 60, "api server").