You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

246 lines
6.2 KiB

2 months ago
package business
import (
"fmt"
"wss-pool/config"
"wss-pool/dictionary"
"wss-pool/logging/applogger"
"wss-pool/pkg/hbwssclient/marketwssclient"
"wss-pool/pkg/model"
"wss-pool/pkg/model/market"
)
// k线数据
func MgoSubscribeCtKline() {
symbolList := model.SymbolCtListString(dictionary.ContractTime)
client := new(marketwssclient.ContractKLineWebSocketClient).Init(config.Config.HbContract.HbContractHost)
client.SetHandler(
func() {
for symbol, period := range symbolList {
for _, value := range period {
client.Subscribe(symbol, value, config.Config.HbContract.HbContractSubUids)
}
}
},
func(response interface{}) {
resp, ok := response.(market.SubscribeCtKlineResponse)
if ok {
if &resp != nil {
if resp.Tick != nil || resp.Data != nil {
applogger.Info("subscribeCtKline data,ServersId:%v,Sender:%v,Content:%v-%v", resp.Channel, resp.Tick, resp.Data)
}
}
} else {
applogger.Warn("Unknown response: %v", resp)
}
})
client.Connect(true)
fmt.Println("Press ENTER to unsubscribe and stop...")
fmt.Scanln()
for symbol, period := range symbolList {
for _, value := range period {
client.UnSubscribe(symbol, value, config.Config.HbContract.HbContractSubUids)
}
}
client.Close()
applogger.Info("Client closed")
}
// 深度信息
func MgoSubscribeCtDepth() {
symbolList := model.SymbolCtListString(dictionary.ContractDepth)
client := new(marketwssclient.ContractDepthWebSocketClient).Init(config.Config.HbContract.HbContractHost)
client.SetHandler(
func() {
for symbol, period := range symbolList {
for _, value := range period {
client.Subscribe(symbol, value, config.Config.HbContract.HbContractSubUids)
}
}
},
func(response interface{}) {
resp, ok := response.(market.SubscribeCtDepthResponse)
if ok {
if &resp != nil {
if resp.Tick != nil {
applogger.Info("subscribeCtDepth data,ServersId:%v,Sender:%v,Content:%v", resp.Channel, resp.Tick)
}
}
} else {
applogger.Warn("Unknown response: %v", resp)
}
})
client.Connect(true)
fmt.Println("Press ENTER to unsubscribe and stop...")
fmt.Scanln()
for symbol, period := range symbolList {
for _, value := range period {
client.UnSubscribe(symbol, value, config.Config.HbContract.HbContractSubUids)
}
}
client.Close()
applogger.Info("Client closed")
}
// 新增深度信息
func MgoSubscribeCtAddDepth() {
symbolList := model.SymbolCtListString(dictionary.ContractAddDepth)
client := new(marketwssclient.ContractDepthSizeWebSocketClient).Init(config.Config.HbContract.HbContractHost)
client.SetHandler(
func() {
for symbol, period := range symbolList {
for _, value := range period {
client.Subscribe(symbol, value, config.Config.HbContract.HbContractSubUids)
}
}
},
func(response interface{}) {
resp, ok := response.(market.SubscribeCtAddDepthResponse)
if ok {
if &resp != nil {
if resp.Tick != nil {
applogger.Info("subscribeCtAddDepth data,ServersId:%v,Sender:%v,Content:%v", resp.Channel, resp.Tick)
}
}
} else {
applogger.Warn("Unknown response: %v", resp)
}
})
client.Connect(true)
fmt.Println("Press ENTER to unsubscribe and stop...")
fmt.Scanln()
for symbol, period := range symbolList {
for _, value := range period {
client.UnSubscribe(symbol, value, config.Config.HbContract.HbContractSubUids)
}
}
client.Close()
applogger.Info("Client closed")
}
// 买一卖一行情数据
func MgoSubscribeCtBbo() {
symbolList := model.SymbolCtListString([]string{})
client := new(marketwssclient.ContractBBOWebSocketClient).Init(config.Config.HbContract.HbContractHost)
client.SetHandler(
func() {
for symbol, _ := range symbolList {
client.Subscribe(symbol, config.Config.HbContract.HbContractSubUids)
}
},
func(response interface{}) {
resp, ok := response.(market.SubscribeCtBboResponse)
if ok {
if &resp != nil {
if resp.Tick != nil {
applogger.Info("subscribeCtBbo data,ServersId:%v,Sender:%v,Content:%v", resp.Channel, resp.Tick)
}
}
} else {
applogger.Warn("Unknown response: %v", resp)
}
})
client.Connect(true)
fmt.Println("Press ENTER to unsubscribe and stop...")
fmt.Scanln()
for symbol, _ := range symbolList {
client.UnSubscribe(symbol, config.Config.HbContract.HbContractSubUids)
}
client.Close()
applogger.Info("Client closed")
}
// 合约详情数据
func MgoSubscribeCtDetail() {
symbolList := model.SymbolCtListString([]string{})
client := new(marketwssclient.ContractDetailWebSocketClient).Init(config.Config.HbContract.HbContractHost)
client.SetHandler(
func() {
for symbol, _ := range symbolList {
client.Subscribe(symbol, config.Config.HbContract.HbContractSubUids)
}
},
func(response interface{}) {
resp, ok := response.(market.SubscribeCtDetailResponse)
if ok {
if &resp != nil {
if resp.Tick != nil {
applogger.Info("subscribeCtDetail data,ServersId:%v,Sender:%v,Content:%v", resp.Channel, resp.Tick)
}
}
} else {
applogger.Warn("Unknown response: %v", resp)
}
})
client.Connect(true)
fmt.Println("Press ENTER to unsubscribe and stop...")
fmt.Scanln()
for symbol, _ := range symbolList {
client.UnSubscribe(symbol, config.Config.HbContract.HbContractSubUids)
}
client.Close()
applogger.Info("Client closed")
}
// 合约贸易详情数据
func MgoSubscribeCtTradeDetail() {
symbolList := model.SymbolCtListString([]string{})
client := new(marketwssclient.ContractTradeDetailWebSocketClient).Init(config.Config.HbContract.HbContractHost)
client.SetHandler(
func() {
for symbol, _ := range symbolList {
client.Subscribe(symbol, config.Config.HbContract.HbContractSubUids)
}
},
func(response interface{}) {
resp, ok := response.(market.SubscribeCtTradeDetailResponse)
if ok {
if &resp != nil {
if resp.Tick != nil {
applogger.Info("subscribeCtTradeDetail data,ServersId:%v,Sender:%v,Content:%v", resp.Channel, resp.Tick)
}
}
} else {
applogger.Warn("Unknown response: %v", resp)
}
})
client.Connect(true)
fmt.Println("Press ENTER to unsubscribe and stop...")
fmt.Scanln()
for symbol, _ := range symbolList {
client.UnSubscribe(symbol, config.Config.HbContract.HbContractSubUids)
}
client.Close()
applogger.Info("Client closed")
}