...
This commit is contained in:
14
test-feed/Dockerfile
Normal file
14
test-feed/Dockerfile
Normal file
@@ -0,0 +1,14 @@
|
||||
FROM golang:1.21-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Create test program
|
||||
COPY test_feed.go .
|
||||
|
||||
# Download dependencies
|
||||
RUN go mod init test && go get github.com/gorilla/websocket
|
||||
|
||||
# Build test
|
||||
RUN go build -o test_feed test_feed.go
|
||||
|
||||
CMD ["./test_feed"]
|
||||
80
test-feed/test_feed.go
Normal file
80
test-feed/test_feed.go
Normal file
@@ -0,0 +1,80 @@
|
||||
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!")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user