81 lines
2.2 KiB
Go
81 lines
2.2 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"fmt"
|
|
"log"
|
|
"time"
|
|
|
|
"github.com/gorilla/websocket"
|
|
)
|
|
|
|
func main() {
|
|
fmt.Println("=== Arbitrum Sequencer Feed Test ===")
|
|
fmt.Println("Testing: wss://arb1.arbitrum.io/feed")
|
|
fmt.Println()
|
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
|
|
defer cancel()
|
|
|
|
log.Println("[1/3] Connecting to Arbitrum sequencer feed...")
|
|
|
|
dialer := websocket.DefaultDialer
|
|
dialer.HandshakeTimeout = 10 * time.Second
|
|
|
|
conn, resp, err := dialer.DialContext(ctx, "wss://arb1.arbitrum.io/feed", nil)
|
|
if err != nil {
|
|
log.Fatalf("❌ Connection FAILED: %v", err)
|
|
}
|
|
defer conn.Close()
|
|
|
|
log.Printf("✅ Connected successfully! (HTTP %d)", resp.StatusCode)
|
|
log.Println()
|
|
log.Println("[2/3] Waiting for messages from feed (30 second timeout)...")
|
|
|
|
// Set read deadline
|
|
conn.SetReadDeadline(time.Now().Add(25 * time.Second))
|
|
|
|
// Try to read messages
|
|
messageCount := 0
|
|
startTime := time.Now()
|
|
|
|
for i := 0; i < 100; i++ {
|
|
var msg map[string]interface{}
|
|
err := conn.ReadJSON(&msg)
|
|
if err != nil {
|
|
elapsed := time.Since(startTime)
|
|
log.Printf("❌ Read error after %d messages (%.2fs elapsed): %v", messageCount, elapsed.Seconds(), err)
|
|
break
|
|
}
|
|
|
|
messageCount++
|
|
elapsed := time.Since(startTime)
|
|
|
|
// Print first 3 messages in full
|
|
if messageCount <= 3 {
|
|
msgJSON, _ := json.MarshalIndent(msg, "", " ")
|
|
log.Printf("✅ Message %d (%.2fs):\n%s\n", messageCount, elapsed.Seconds(), msgJSON)
|
|
} else if messageCount%10 == 0 {
|
|
log.Printf("✅ Received %d messages so far (%.2fs elapsed)...", messageCount, elapsed.Seconds())
|
|
}
|
|
|
|
// Reset deadline for next read
|
|
conn.SetReadDeadline(time.Now().Add(25 * time.Second))
|
|
}
|
|
|
|
log.Println()
|
|
log.Println("[3/3] Test Results:")
|
|
if messageCount == 0 {
|
|
log.Println("❌ FAILED - ZERO messages received from feed")
|
|
log.Println(" The feed connects but doesn't send any data")
|
|
log.Println(" This could be:")
|
|
log.Println(" - Cloudflare blocking the connection")
|
|
log.Println(" - Feed requires authentication")
|
|
log.Println(" - Feed URL is incorrect")
|
|
} else {
|
|
log.Printf("✅ SUCCESS - Received %d messages from feed", messageCount)
|
|
log.Println(" The feed is working correctly!")
|
|
}
|
|
}
|