func (d *TradesWS) Read() (*TradesUpdate, error) {
	_, data, err := d.conn.ReadMessage()
	if err != nil {
		return nil, err
	}
	update := &TradesUpdate{}
	return update, json.Unmarshal(data, update)
}
Read reads a trades update message from the trades websocket
package binance
import (
	"encoding/json"
	"github.com/gorilla/websocket"
)
type wsWrapper struct {
	conn *websocket.Conn
}
func (w *wsWrapper) Close() error {
	return w.conn.Close()
}
type DepthWS struct {
	wsWrapper
}
func (d *DepthWS) Read() (*DepthUpdate, error) {
	_, data, err := d.conn.ReadMessage()
	if err != nil {
		return nil, err
	}
	update := &DepthUpdate{}
	return update, json.Unmarshal(data, update)
}
type DepthLevelWS struct {
	wsWrapper
}
func (d *DepthLevelWS) Read() (*DepthLevelUpdate, error) {
	_, data, err := d.conn.ReadMessage()
	if err != nil {
		return nil, err
	}
	update := &DepthLevelUpdate{}
	return update, json.Unmarshal(data, update)
}
type AllMarketTickerWS struct {
	wsWrapper
}
func (d *AllMarketTickerWS) Read() (*AllMarketTickerUpdate, error) {
	_, data, err := d.conn.ReadMessage()
	if err != nil {
		return nil, err
	}
	update := &AllMarketTickerUpdate{}
	return update, json.Unmarshal(data, update)
}
type IndivTickerWS struct {
	wsWrapper
}
func (d *IndivTickerWS) Read() (*IndivTickerUpdate, error) {
	_, data, err := d.conn.ReadMessage()
	if err != nil {
		return nil, err
	}
	update := &IndivTickerUpdate{}
	return update, json.Unmarshal(data, update)
}
type KlinesWS struct {
	wsWrapper
}
func (d *KlinesWS) Read() (*KlinesUpdate, error) {
	_, data, err := d.conn.ReadMessage()
	if err != nil {
		return nil, err
	}
	update := &KlinesUpdate{}
	return update, json.Unmarshal(data, update)
}
type TradesWS struct {
	wsWrapper
}