github.com/polygon-io/client-go@v1.16.4/websocket/example/launchpad/main.go (about) 1 package main 2 3 import ( 4 "os" 5 "os/signal" 6 7 polygonws "github.com/polygon-io/client-go/websocket" 8 "github.com/polygon-io/client-go/websocket/models" 9 "github.com/sirupsen/logrus" 10 ) 11 12 func main() { 13 log := logrus.New() 14 log.SetLevel(logrus.DebugLevel) 15 log.SetFormatter(&logrus.JSONFormatter{}) 16 c, err := polygonws.New(polygonws.Config{ 17 APIKey: os.Getenv("POLYGON_API_KEY"), 18 Feed: polygonws.LaunchpadFeed, 19 Market: polygonws.Stocks, // Change Market to match examples below (Stocks, Options, Forex, or Crypto) 20 Log: log, 21 }) 22 if err != nil { 23 log.Fatal(err) 24 } 25 defer c.Close() 26 27 // Stocks - make sure you change "Market: polygonws.Stocks" above in the polygonws.Config 28 err = c.Subscribe(polygonws.StocksLaunchpadMinAggs, "*") 29 //err = c.Subscribe(polygonws.StocksLaunchpadValue, "*") 30 31 // Options - make sure you change "Market: polygonws.Options" above in the polygonws.Config 32 //err = c.Subscribe(polygonws.OptionsLaunchpadMinAggs, "O:A230616C00070000") 33 //err = c.Subscribe(polygonws.OptionsLaunchpadValue, "O:A230616C00070000") 34 35 // Forex - make sure you change "Market: polygonws.Forex" above in the polygonws.Config 36 //err = c.Subscribe(polygonws.ForexLaunchpadMinAggs, "*") 37 //err = c.Subscribe(polygonws.ForexLaunchpadValue, "*") 38 39 // Crypto - make sure you change "Market: polygonws.Crypto" above in the polygonws.Config 40 //err = c.Subscribe(polygonws.CryptoLaunchpadMinAggs, "*") 41 //err = c.Subscribe(polygonws.CryptoLaunchpadValue, "*") 42 43 if err != nil { 44 log.Error(err) 45 return 46 } 47 48 if err := c.Connect(); err != nil { 49 log.Error(err) 50 return 51 } 52 53 sigint := make(chan os.Signal, 1) 54 signal.Notify(sigint, os.Interrupt) 55 56 for { 57 select { 58 case <-sigint: 59 return 60 case <-c.Error(): 61 return 62 case out, more := <-c.Output(): 63 if !more { 64 return 65 } 66 67 switch out.(type) { 68 case models.CurrencyAgg: 69 log.WithFields(logrus.Fields{"currency aggregate": out}).Info() 70 case models.EquityAgg: 71 log.WithFields(logrus.Fields{"equity aggregate": out}).Info() 72 case models.LaunchpadValue: 73 log.WithFields(logrus.Fields{"value": out}).Info() 74 } 75 } 76 } 77 }