reCluster
  • Welcome
    • reCluster
    • Registration
    • Frequently Asked Questions
    • Roadmap
  • Features
    • Midprice
    • Tickers
    • Trades
    • OHLC
    • Volume Weighted Average Price
  • Integration
    • General Information
    • Python
    • Node.js
    • Golang
Powered by GitBook
On this page
  1. Integration

Golang

Connect with Golang

  • Go 1.18+

  • Install the Gorilla WebSocket package: go get github.com/gorilla/websocket

package main

import (
    "encoding/json"
    "log"
    "net/url"

    "github.com/gorilla/websocket"
)

type SubscriptionMessage struct {
    Topic  string `json:"topic"`
    Symbol string `json:"symbol"`
    Action string `json:"action"`
}

func main() {
    wsURL := "wss://ws.recluster.io/ws?password=example"

    u, err := url.Parse(wsURL)
    if err != nil {
        log.Fatalf("Invalid WebSocket URL: %v", err)
    }
    c, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
    if err != nil {
        log.Fatalf("Error connecting to WebSocket: %v", err)
    }
    defer c.Close()

    log.Println("Connected to reCluster!")
    subMsg := SubscriptionMessage{
        Topic:  "orderbook",
        Symbol: "BTCUSDT",
        Action: "subscribe",
    }

    msgBytes, err := json.Marshal(subMsg)
    if err != nil {
        log.Fatalf("Error marshaling subscription message: %v", err)
    }

    err = c.WriteMessage(websocket.TextMessage, msgBytes)
    if err != nil {
        log.Fatalf("Error sending subscription request: %v", err)
    }

    for {
        _, message, err := c.ReadMessage()
        if err != nil {
            log.Printf("Read error: %v", err)
            return
        }
        log.Printf("Received: %s", message)
    }
}

PreviousNode.js

Last updated 3 months ago