61 lines
1.1 KiB
Go
61 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
"net/http"
|
|
_ "net/http/pprof"
|
|
|
|
"git.neurocipta.com/rogerferdinan/safe-web-socket/v1/client"
|
|
)
|
|
|
|
func main() {
|
|
go func() {
|
|
log.Println("Starting pprof server on :6060")
|
|
log.Println(http.ListenAndServe(":6060", nil))
|
|
}()
|
|
|
|
sigChan := make(chan os.Signal, 1)
|
|
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
|
|
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
|
|
go func() {
|
|
<-sigChan
|
|
fmt.Println("\nReceived interrupt signal. Shutting down gracefully...")
|
|
cancel()
|
|
}()
|
|
|
|
wsClient, err := client.NewSafeWebsocketClientBuilder().
|
|
BaseHost("localhost").
|
|
BasePort(8080).
|
|
Headers(map[string]string{
|
|
"X-MBX-APIKEY": "abcd",
|
|
}).Path("/ws/test/data_1").
|
|
UseTLS(false).
|
|
ChannelSize(1).
|
|
Build(ctx)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
go func() {
|
|
for range wsClient.ReconnectChannel() {
|
|
fmt.Println("Reconnection Success")
|
|
}
|
|
}()
|
|
|
|
dataChannel := wsClient.DataChannel()
|
|
|
|
for data := range dataChannel {
|
|
_ = data
|
|
// fmt.Println(string(data))
|
|
}
|
|
}
|