mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 23:16:45 +00:00
Added basic Websocket support for DWVX Exchange.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/gorilla/websocket"
|
||||
"log"
|
||||
"time"
|
||||
)
|
||||
@@ -24,6 +25,7 @@ type DWVX struct {
|
||||
EnabledPairs []string
|
||||
API Alphapoint
|
||||
DepositAddresses map[string]string
|
||||
WebsocketConn *websocket.Conn
|
||||
}
|
||||
|
||||
func (d *DWVX) SetDefaults() {
|
||||
@@ -56,10 +58,15 @@ func (d *DWVX) SetAPIKeys(userID, apiKey, apiSecret string) {
|
||||
|
||||
func (d *DWVX) Run() {
|
||||
if d.Verbose {
|
||||
log.Printf("%s Websocket: %s. (url: %s).\n", d.GetName(), IsEnabled(d.Websocket), DWVX_WEBSOCKET_URL)
|
||||
log.Printf("%s polling delay: %ds.\n", d.GetName(), d.RESTPollingDelay)
|
||||
log.Printf("%s %d currencies enabled: %s.\n", d.GetName(), len(d.EnabledPairs), d.EnabledPairs)
|
||||
}
|
||||
|
||||
if d.Websocket {
|
||||
go d.WebsocketClient()
|
||||
}
|
||||
|
||||
products, err := d.GetProductPairs()
|
||||
if err != nil {
|
||||
log.Printf("%s Failed to get available symbols.\n", d.GetName())
|
||||
|
||||
69
dwvxwebsocket.go
Normal file
69
dwvxwebsocket.go
Normal file
@@ -0,0 +1,69 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/gorilla/websocket"
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
const (
|
||||
DWVX_WEBSOCKET_URL = "wss://api.dwvx.com.au:8401/v1/GetTicker/"
|
||||
)
|
||||
|
||||
func (d *DWVX) WebsocketClient() {
|
||||
for d.Enabled && d.Websocket {
|
||||
var Dialer websocket.Dialer
|
||||
var err error
|
||||
d.WebsocketConn, _, err = Dialer.Dial(DWVX_WEBSOCKET_URL, http.Header{})
|
||||
|
||||
if err != nil {
|
||||
log.Printf("%s Unable to connect to Websocket. Error: %s\n", d.Name, err)
|
||||
continue
|
||||
}
|
||||
|
||||
if d.Verbose {
|
||||
log.Printf("%s Connected to Websocket.\n", d.Name)
|
||||
}
|
||||
|
||||
err = d.WebsocketConn.WriteMessage(websocket.TextMessage, []byte(`{"messageType": "logon"}`))
|
||||
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
for d.Enabled && d.Websocket {
|
||||
msgType, resp, err := d.WebsocketConn.ReadMessage()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
break
|
||||
}
|
||||
|
||||
switch msgType {
|
||||
case websocket.TextMessage:
|
||||
type MsgType struct {
|
||||
MessageType string `json:"messageType"`
|
||||
}
|
||||
|
||||
msgType := MsgType{}
|
||||
err := JSONDecode(resp, &msgType)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
continue
|
||||
}
|
||||
|
||||
switch msgType.MessageType {
|
||||
case "Ticker":
|
||||
ticker := AlphapointWebsocketTicker{}
|
||||
err = JSONDecode(resp, &ticker)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
d.WebsocketConn.Close()
|
||||
log.Printf("%s Websocket client disconnected.", d.Name)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user