code: func handleTunnel(r *Request) (interface{}, error) {
  	var args struct {
  		URL string
  	}
  	r.Args.One().MustUnmarshal(&args)
  
  	parsed, err := url.Parse(args.URL)
  	if err != nil {
  		return nil, err
  	}
  
  	requestHeader := http.Header{}
  	requestHeader.Add("Origin", "http://"+parsed.Host)
  
  	remoteConn, _, err := websocket.DefaultDialer.Dial(parsed.String(), requestHeader)
  	if err != nil {
  		return nil, err
  	}
  
  	session := sockjsclient.NewWebsocketSession(remoteConn)
  
  	go r.LocalKite.sockjsHandler(session)
  	return nil, nil
  }
docs: // handleTunnel opens two websockets, one to proxy kite and one to itself,
  // then it copies the message between them.