Files
nofx/provider/coinank/coinank_api/kline_ws_test.go
2026-01-27 22:07:38 +08:00

61 lines
1.3 KiB
Go

package coinank_api
import (
"context"
"encoding/json"
"fmt"
"nofx/provider/coinank/coinank_enum"
"testing"
"time"
)
func TestKlineWs(t *testing.T) {
ctx := context.TODO()
ws, err := WsConn(ctx, true, true)
if err != nil {
t.Fatal(err)
}
go func() {
for tickers := range ws.TickersCh {
msg, err := json.Marshal(tickers)
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(string(msg))
}
fmt.Println("tickersCh closed")
}()
go func() {
for kline := range ws.KlineCh {
msg, err := json.Marshal(kline)
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(string(msg))
}
fmt.Println("kline closed")
}()
err = ws.Subscribe("BTCUSDT", coinank_enum.Binance, coinank_enum.Minute1)
if err != nil {
t.Fatal(err)
}
fmt.Println("sub success")
time.Sleep(10 * time.Second)
err = ws.UnSubscribe("BTCUSDT", coinank_enum.Binance, coinank_enum.Minute1)
if err != nil {
t.Fatal(err)
}
fmt.Println("unsub success")
time.Sleep(10 * time.Second)
err = ws.Subscribe("BTCUSDT", coinank_enum.Binance, coinank_enum.Hour1)
if err != nil {
t.Fatal(err)
}
fmt.Println("resub success")
time.Sleep(10 * time.Second)
ws.Close()
fmt.Println("cancel success")
time.Sleep(10 * time.Second)
fmt.Println("all success")
}