package main
import (
"encoding/json"
"fmt"
"log"
"strings"
"github.com/gorilla/websocket"
)
func main() {
conn, _, err := websocket.DefaultDialer.Dial(
"wss://socket.bayse.markets/ws/v1/realtime", nil,
)
if err != nil {
log.Fatal(err)
}
defer conn.Close()
conn.WriteJSON(map[string]any{
"type": "subscribe",
"channel": "asset_prices",
"symbols": []string{"BTCUSDT", "ETHUSDT", "SOLUSDT"},
})
for {
_, data, err := conn.ReadMessage()
if err != nil {
log.Fatal(err)
}
for _, line := range strings.Split(string(data), "\n") {
if strings.TrimSpace(line) == "" {
continue
}
var msg map[string]any
json.Unmarshal([]byte(line), &msg)
if msg["type"] == "asset_price" {
d := msg["data"].(map[string]any)
fmt.Printf("%s: %v\n", d["symbol"], d["price"])
}
}
}
}