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
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)
|
|
}
|
|
}
|
|
|