package telal import ( "encoding/json" "log" "net/http" "time" "github.com/gorilla/websocket" ) // Message represents the format of messages sent to clients type Message struct { Type string `json:"type"` URL string `json:"url"` } func ServeAds() { // Create a new WebSocket upgrader upgrader := websocket.Upgrader{} // Create a handler function for WebSocket connections handler := func(w http.ResponseWriter, r *http.Request) { // Upgrade the HTTP connection to a WebSocket connection conn, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Println(err) return } defer conn.Close() // Send a message containing an image URL every 5 seconds for { message := Message{ Type: "image", URL: "http://example.com/image.jpg", } jsonMessage, err := json.Marshal(message) if err != nil { log.Println(err) return } err = conn.WriteMessage(websocket.TextMessage, jsonMessage) if err != nil { log.Println(err) return } time.Sleep(5 * time.Second) } } // Set up an HTTP server with the WebSocket handler http.HandleFunc("/", handler) log.Fatal(http.ListenAndServe(":8080", nil)) }