From 64e265c34a165b1ad7c30e0836be7b4ba3ac90a6 Mon Sep 17 00:00:00 2001 From: Adrian Gallagher Date: Sat, 18 Apr 2015 20:08:50 +1000 Subject: [PATCH] Added basic Websocket implementation for BTC China. --- btcchinawebsocket.go | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 btcchinawebsocket.go diff --git a/btcchinawebsocket.go b/btcchinawebsocket.go new file mode 100644 index 00000000..8f225187 --- /dev/null +++ b/btcchinawebsocket.go @@ -0,0 +1,51 @@ +package main + +import ( + "log" + "github.com/thrasher-/socketio" +) + +const ( + BTCCHINA_SOCKETIO_ADDRESS = "https://websocket.btcchina.com" +) + +func (b *BTCChina) OnConnect(output chan socketio.Message) { + if b.Verbose { + log.Printf("%s Connected to Websocket.", b.GetName()) + } +} + +func (b *BTCChina) OnDisconnect(output chan socketio.Message) { + log.Printf("%s Disconnected from websocket server.. Reconnecting.\n", b.GetName()) + b.WebsocketClient() +} + +func (b *BTCChina) OnError() { + log.Printf("%s Error with Websocket connection.. Reconnecting.\n", b.GetName()) + b.WebsocketClient() +} + +func (b *BTCChina) OnMessage(message []byte, output chan socketio.Message) { + log.Println(string(message)) +} + +func (b *BTCChina) WebsocketClient() { + events := make(map[string]func(message []byte, output chan socketio.Message)) + events["message"] = b.OnMessage + + HuobiSocket = &socketio.SocketIO{ + Version: 1, + OnConnect: b.OnConnect, + OnEvent: events, + OnError: b.OnError, + OnDisconnect: b.OnDisconnect, + } + + err := socketio.ConnectToSocket(BTCCHINA_SOCKETIO_ADDRESS, HuobiSocket) + if err != nil { + log.Println(err) + } + + log.Printf("%s Websocket client disconnected.. Reconnecting.", b.GetName()) + b.WebsocketClient() +} \ No newline at end of file