URGENT: Heartbeat message return 1011 error

I tried to connect to supabase realtime by using websocket.
I use Go. Here is my code.

func (rm *RealtimeManager) startHeartbeat() {
rm.heartbeatMutex.Lock()
defer rm.heartbeatMutex.Unlock()

// Stop any existing heartbeat
if rm.heartbeatTicker != nil {
rm.heartbeatTicker.Stop()
}

rm.heartbeatTicker = time.NewTicker(20 * time.Second)

go func() {
heartbeatCount := 0
for {
select {
case <-rm.ctx.Done():
return
case <-rm.heartbeatTicker.C:
heartbeatCount++
// Send Phoenix heartbeat message
heartbeatMsg := WebSocketMessage{
Event: "heartbeat",
Topic: "phoenix",
Payload: map[string]interface{}{},
Ref: fmt.Sprintf("%d", heartbeatCount),
}
if err := rm.sendMessage(heartbeatMsg); err != nil {
rm.logger.Warn(fmt.Sprintf("Failed to send heartbeat: %v", err))
rm.setConnected(false)
// Connection will be re-established by handleMessages when it detects the error
} else {
rm.logger.Debug("Heartbeat sent successfully")
}
}
}
}()
}

But it returns Websocket closed unexpectedly. 1011 error code (internal server error)
Was this page helpful?