github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/pkg/platform/api/buildlogstream/streamer.go (about)

     1  package buildlogstream
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/gorilla/websocket"
     7  	"golang.org/x/net/context"
     8  
     9  	"github.com/ActiveState/cli/internal/errs"
    10  	"github.com/ActiveState/cli/internal/logging"
    11  	"github.com/ActiveState/cli/pkg/platform/api"
    12  )
    13  
    14  func Connect(ctx context.Context) (*websocket.Conn, error) {
    15  	url := api.GetServiceURL(api.BuildLogStreamer)
    16  	header := make(http.Header)
    17  	header.Add("Origin", "https://"+url.Host)
    18  
    19  	logging.Debug("Creating websocket for %s (origin: %s)", url.String(), header.Get("Origin"))
    20  	conn, _, err := websocket.DefaultDialer.DialContext(ctx, url.String(), header)
    21  	if err != nil {
    22  		return nil, errs.Wrap(err, "Could not create websocket dialer")
    23  	}
    24  	return conn, nil
    25  }