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.

36 lines
1.0 KiB

package forex
import (
"fmt"
"net/http"
"wss-pool/config"
"wss-pool/internal/data"
"wss-pool/logging/applogger"
)
// SubscribeForex
//
// @Description: 外汇行情采集分发
// @param ipServer
// @param addrServer
func SubscribeForex(ipServer, addrServer string) {
data.Mgo_init(config.Config.Mongodb)
codeList := GetMongodbForexCode()
applogger.Debug("foreList data:%v", codeList)
hub := newHub()
go hub.ForexMarketBBOSwitcher(codeList) // 订阅盘口(买一卖一)报价
go hub.ForexMarketTradeSwitcher(codeList) // 订阅成交报价
go hub.ForexMarketBatchPrice(codeList) // 订阅实时报价
go hub.ForexMarketBatchDayPrice(codeList) // 订阅每天报价-数据(实时-最高-最低-开盘价)
go hub.run()
http.HandleFunc("/forexWs", func(w http.ResponseWriter, r *http.Request) {
handleConnection(hub, w, r)
})
addr := fmt.Sprintf("%v%v", ipServer, addrServer)
applogger.Info("wss-pool server start at %v", addr)
if err := http.ListenAndServe(addr, nil); err != nil {
applogger.Error("ListenAndServe:%v", err)
}
}