Files
old-reklame-agent/internal/app/telal/adserver.go
2023-03-02 07:24:12 +01:00

56 lines
1.1 KiB
Go

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))
}