2024-12-14 19:09:06 +08:00
|
|
|
|
package ws
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"encoding/json"
|
|
|
|
|
"fmt"
|
2025-03-05 20:52:20 +08:00
|
|
|
|
. "gitea.zjmud.xyz/phyer/v5sdkgo/ws/wImpl"
|
2024-12-14 19:09:06 +08:00
|
|
|
|
"log"
|
|
|
|
|
"strings"
|
|
|
|
|
"testing"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func prework() *WsClient {
|
|
|
|
|
ep := "wss://wsaws.okex.com:8443/ws/v5/private"
|
|
|
|
|
|
|
|
|
|
r, err := NewWsClient(ep)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = r.Start()
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatal(err, ep)
|
|
|
|
|
}
|
|
|
|
|
return r
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 产品频道测试
|
|
|
|
|
func TestInstruemnts(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instType"] = SPOT
|
|
|
|
|
//arg["instType"] = OPTION
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubInstruemnts(OP_SUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(3 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubInstruemnts(OP_UNSUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// status频道测试
|
|
|
|
|
func TestStatus(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubStatus(OP_SUBSCRIBE)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(10000 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubStatus(OP_UNSUBSCRIBE)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 行情频道测试
|
|
|
|
|
func TestTickers(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = "BTC-USDT"
|
|
|
|
|
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubTickers(OP_SUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(600 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubTickers(OP_UNSUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 持仓总量频道 测试
|
|
|
|
|
func TestOpenInsterest(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = "LTC-USD-SWAP"
|
|
|
|
|
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubOpenInsterest(OP_SUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(60 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubOpenInsterest(OP_UNSUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// K线频道测试
|
|
|
|
|
func TestKLine(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = "BTC-USDT"
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
// 1分钟K
|
|
|
|
|
period := PERIOD_1MIN
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubKLine(OP_SUBSCRIBE, period, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(60 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubKLine(OP_UNSUBSCRIBE, period, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 交易频道测试
|
|
|
|
|
func TestTrade(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = "BTC-USDT"
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubTrade(OP_SUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(60 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubTrade(OP_UNSUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 预估交割/行权价格频道 测试
|
|
|
|
|
func TestEstDePrice(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instType"] = FUTURES
|
|
|
|
|
arg["uly"] = "BTC-USD"
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubEstDePrice(OP_SUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(60 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubEstDePrice(OP_UNSUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 标记价格频道 测试
|
|
|
|
|
func TestMarkPrice(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = "BTC-USDT"
|
|
|
|
|
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubMarkPrice(OP_SUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(60 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubMarkPrice(OP_UNSUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 标记价格K线频道 测试s
|
|
|
|
|
func TestMarkPriceCandle(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = "BTC-USDT"
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
period := PERIOD_1MIN
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubMarkPriceCandle(OP_SUBSCRIBE, period, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(60 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubMarkPriceCandle(OP_UNSUBSCRIBE, period, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 限价频道 测试
|
|
|
|
|
func TestLimitPrice(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = "BTC-USDT"
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubLimitPrice(OP_SUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(60 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubLimitPrice(OP_UNSUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 深度频道 测试
|
|
|
|
|
func TestOrderBooks(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
设置关闭深度数据管理
|
|
|
|
|
*/
|
|
|
|
|
// err = r.EnableAutoDepthMgr(false)
|
|
|
|
|
// if err != nil {
|
|
|
|
|
// fmt.Println("关闭自动校验失败!")
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
end := make(chan struct{})
|
|
|
|
|
|
|
|
|
|
r.AddDepthHook(func(ts time.Time, data DepthData) error {
|
|
|
|
|
// 对于深度类型数据处理的用户可以自定义
|
|
|
|
|
|
|
|
|
|
// 检测深度数据是否正常
|
|
|
|
|
key, _ := json.Marshal(data.Arg)
|
|
|
|
|
fmt.Println("个数:", len(data.Data[0].Asks))
|
|
|
|
|
checksum := data.Data[0].Checksum
|
|
|
|
|
fmt.Println("[自定义方法] ", string(key), ", checksum = ", checksum)
|
|
|
|
|
|
|
|
|
|
for _, ask := range data.Data[0].Asks {
|
|
|
|
|
|
|
|
|
|
arr := strings.Split(ask[0], ".")
|
|
|
|
|
//fmt.Println(arr)
|
|
|
|
|
if len(arr) > 1 && len(arr[1]) > 2 {
|
|
|
|
|
fmt.Println("ask数据异常,", checksum, "ask:", ask)
|
|
|
|
|
t.Fatal()
|
|
|
|
|
end <- struct{}{}
|
|
|
|
|
return nil
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("bid数据正常,", checksum, "ask:", ask)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for _, bid := range data.Data[0].Bids {
|
|
|
|
|
|
|
|
|
|
arr := strings.Split(bid[0], ".")
|
|
|
|
|
//fmt.Println(arr)
|
|
|
|
|
if len(arr) > 1 && len(arr[1]) > 2 {
|
|
|
|
|
fmt.Println("bid数据异常,", checksum, "bid:", bid)
|
|
|
|
|
t.Fatal()
|
|
|
|
|
end <- struct{}{}
|
|
|
|
|
return nil
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("ask数据正常,", checksum, "bid:", bid)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// // 查看当前合并后的全量深度数据
|
|
|
|
|
// snapshot, err := r.GetSnapshotByChannel(data)
|
|
|
|
|
// if err != nil {
|
|
|
|
|
// t.Fatal("深度数据不存在!")
|
|
|
|
|
// }
|
|
|
|
|
// // 展示ask/bid 前5档数据
|
|
|
|
|
// fmt.Println(" Ask 5 档数据 >> ")
|
|
|
|
|
// for _, v := range snapshot.Asks[:5] {
|
|
|
|
|
// fmt.Println(" price:", v[0], " amount:", v[1])
|
|
|
|
|
// }
|
|
|
|
|
// fmt.Println(" Bid 5 档数据 >> ")
|
|
|
|
|
// for _, v := range snapshot.Bids[:5] {
|
|
|
|
|
// fmt.Println(" price:", v[0], " amount:", v[1])
|
|
|
|
|
// }
|
|
|
|
|
return nil
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// 可选类型:books books5 books-l2-tbt
|
|
|
|
|
channel := "books50-l2-tbt"
|
|
|
|
|
|
|
|
|
|
instIds := []string{"BTC-USDT"}
|
|
|
|
|
for _, instId := range instIds {
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = instId
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubOrderBooks(OP_SUBSCRIBE, channel, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
select {
|
|
|
|
|
case <-end:
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//等待推送
|
|
|
|
|
for _, instId := range instIds {
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = instId
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubOrderBooks(OP_UNSUBSCRIBE, channel, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 期权定价频道 测试
|
|
|
|
|
func TestOptionSummary(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["uly"] = "BTC-USD"
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubOptionSummary(OP_SUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(60 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubOptionSummary(OP_UNSUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 资金费率 测试
|
|
|
|
|
func TestFundRate(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = "BTC-USD-SWAP"
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubFundRate(OP_SUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(600 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubFundRate(OP_UNSUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 指数K线频道 测试
|
|
|
|
|
func TestKLineIndex(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
|
|
|
|
|
arg["instId"] = "BTC-USDT"
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
period := PERIOD_1MIN
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubKLineIndex(OP_SUBSCRIBE, period, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
t.Fatal("订阅失败!", err)
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(60 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubKLineIndex(OP_UNSUBSCRIBE, period, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 指数行情频道 测试
|
|
|
|
|
func TestIndexMarket(t *testing.T) {
|
|
|
|
|
r := prework()
|
|
|
|
|
var err error
|
|
|
|
|
var res bool
|
|
|
|
|
|
|
|
|
|
var args []map[string]string
|
|
|
|
|
arg := make(map[string]string)
|
|
|
|
|
arg["instId"] = "BTC-USDT"
|
|
|
|
|
args = append(args, arg)
|
|
|
|
|
|
|
|
|
|
start := time.Now()
|
|
|
|
|
res, _, err = r.PubIndexTickers(OP_SUBSCRIBE, args)
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println("订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
if res {
|
|
|
|
|
fmt.Println("订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("订阅失败!", usedTime.String())
|
|
|
|
|
//return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
time.Sleep(600 * time.Second)
|
|
|
|
|
//等待推送
|
|
|
|
|
|
|
|
|
|
start = time.Now()
|
|
|
|
|
res, _, err = r.PubIndexTickers(OP_UNSUBSCRIBE, args)
|
|
|
|
|
if res {
|
|
|
|
|
usedTime := time.Since(start)
|
|
|
|
|
fmt.Println("取消订阅成功!", usedTime.String())
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Println("取消订阅失败!", err)
|
|
|
|
|
t.Fatal("取消订阅失败!", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|