mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-14 07:26:47 +00:00
* Added new base logger * updated example and test configs * updated exchange helpers restful router & server * logPath is now passed to the logger to remove dependency on common package * updated everything besides exchanges to use new logger * alphapoint to bitmex done * updated bitmex bitstamp bittrex btcc and also performance changes to logger * btcmarkets coinbase coinut exmo gateio wrappers updated * gateio and gemini logger updated * hitbtc huobi itbit & kraken updated * All exchanges updatd * return correct error for disabled websocket * don't disconnect client on invalid json * updated router internal logging * log.Fatal to t.Error for tests * Changed from fatal to error failure to set maxprocs * output ANSI codes for everything but windows for now due to lack of windows support * added error handling to logger and unit tests * clear wording on print -> log.print * added benchmark test * cleaned up import sections * Updated logger based on PR requests (added default config options on failure/setting errors) * ah this should fix travici enc config issue * Load entire config and clear out logging to hopefully fix travisci issue * wording & test error handling * fixed formatting issues based on feedback * fixed formatting issues based on feedback * changed CheckDir to use mkdirall instead of mkdir and other changes based on feedback
73 lines
1.5 KiB
Go
73 lines
1.5 KiB
Go
package alphapoint
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gorilla/websocket"
|
|
"github.com/thrasher-/gocryptotrader/common"
|
|
log "github.com/thrasher-/gocryptotrader/logger"
|
|
)
|
|
|
|
const (
|
|
alphapointDefaultWebsocketURL = "wss://sim3.alphapoint.com:8401/v1/GetTicker/"
|
|
)
|
|
|
|
// WebsocketClient starts a new webstocket connection
|
|
func (a *Alphapoint) WebsocketClient() {
|
|
for a.Enabled {
|
|
var Dialer websocket.Dialer
|
|
var err error
|
|
a.WebsocketConn, _, err = Dialer.Dial(a.WebsocketURL, http.Header{})
|
|
|
|
if err != nil {
|
|
log.Errorf("%s Unable to connect to Websocket. Error: %s\n", a.Name, err)
|
|
continue
|
|
}
|
|
|
|
if a.Verbose {
|
|
log.Debugf("%s Connected to Websocket.\n", a.Name)
|
|
}
|
|
|
|
err = a.WebsocketConn.WriteMessage(websocket.TextMessage, []byte(`{"messageType": "logon"}`))
|
|
|
|
if err != nil {
|
|
log.Error(err)
|
|
return
|
|
}
|
|
|
|
for a.Enabled {
|
|
msgType, resp, err := a.WebsocketConn.ReadMessage()
|
|
if err != nil {
|
|
log.Error(err)
|
|
break
|
|
}
|
|
|
|
switch msgType {
|
|
case websocket.TextMessage:
|
|
type MsgType struct {
|
|
MessageType string `json:"messageType"`
|
|
}
|
|
|
|
msgType := MsgType{}
|
|
err := common.JSONDecode(resp, &msgType)
|
|
if err != nil {
|
|
log.Error(err)
|
|
continue
|
|
}
|
|
|
|
switch msgType.MessageType {
|
|
case "Ticker":
|
|
ticker := WebsocketTicker{}
|
|
err = common.JSONDecode(resp, &ticker)
|
|
if err != nil {
|
|
log.Error(err)
|
|
continue
|
|
}
|
|
}
|
|
}
|
|
}
|
|
a.WebsocketConn.Close()
|
|
log.Debugf("%s Websocket client disconnected.", a.Name)
|
|
}
|
|
}
|