This commit is contained in:
2024-06-18 00:07:56 +02:00
parent bb7af20f83
commit 2ec00ea02d
3 changed files with 25 additions and 26 deletions

View File

@@ -1 +1 @@
main.exe,"C:\Program Files\Git\usr\bin\dl.exe" main.exe,"C:\Program Files\Git\usr\bin\dl.exe",t

43
main.go
View File

@@ -1,10 +1,7 @@
package main package main
import ( import (
"encoding/json"
"io"
"log" "log"
"net/http"
"time" "time"
) )
@@ -17,27 +14,27 @@ func main() {
log.SetFlags(log.Lmicroseconds) log.SetFlags(log.Lmicroseconds)
log.Println(FULL_URL) log.Println(FULL_URL)
res, err := http.Get(FULL_URL) // res, err := http.Get(FULL_URL)
if err != nil { // if err != nil {
log.Fatal(err) // log.Fatal(err)
} // }
defer res.Body.Close() // defer res.Body.Close()
body, err := io.ReadAll(res.Body) // body, err := io.ReadAll(res.Body)
if err != nil { // if err != nil {
log.Printf("Error reading response body: %+v\n", err) // log.Printf("Error reading response body: %+v\n", err)
return // return
} // }
if res.StatusCode != http.StatusOK { // if res.StatusCode != http.StatusOK {
log.Printf("Non-OK HTTP status: %d\nResponse body: %s\n", res.StatusCode, body) // log.Printf("Non-OK HTTP status: %d\nResponse body: %s\n", res.StatusCode, body)
return // return
} // }
var data APIResponse // var data APIResponse
err = json.Unmarshal(body, &data) // err = json.Unmarshal(body, &data)
if err != nil { // if err != nil {
log.Printf("Error unmarshaling JSON: %+v\n", err) // log.Printf("Error unmarshaling JSON: %+v\n", err)
return // return
} // }
// log.Printf("Data: %+v\n", data) // log.Printf("Data: %+v\n", data)
listener := new(RealtimeListener) listener := new(RealtimeListener)

View File

@@ -24,12 +24,13 @@ type Subscription struct {
} }
func (listener RealtimeListener) handlePbEvent(msg *sse.Event) { func (listener RealtimeListener) handlePbEvent(msg *sse.Event) {
var pbEvent = new(PBEvent) pbEvent := new(PBEvent)
err := json.Unmarshal(msg.Data, &pbEvent) err := json.Unmarshal(msg.Data, &pbEvent)
if err != nil { if err != nil {
log.Printf("Error unmarshalling event: %v\n", err) log.Printf("Error unmarshalling event: %v\n", err)
return return
} }
log.Printf("Received event: %++v", pbEvent)
if pbEvent.ClientId != "" { if pbEvent.ClientId != "" {
listener.doSubscribe(pbEvent.ClientId) listener.doSubscribe(pbEvent.ClientId)
@@ -58,6 +59,7 @@ func (listener RealtimeListener) doSubscribe(clientId string) {
ClientId: clientId, ClientId: clientId,
Subscriptions: listener.Collections, Subscriptions: listener.Collections,
} }
log.Printf("Subscribing client: %v to %++v", clientId, subscription)
body, err := json.Marshal(subscription) body, err := json.Marshal(subscription)
if err != nil { if err != nil {
@@ -81,7 +83,7 @@ func (listener *RealtimeListener) initialize() {
listener.Update = make(chan PBEvent, 32) listener.Update = make(chan PBEvent, 32)
listener.Create = make(chan PBEvent, 32) listener.Create = make(chan PBEvent, 32)
listener.Delete = make(chan PBEvent, 32) listener.Delete = make(chan PBEvent, 32)
log.Print("initialized") log.Print("Initialized")
listener.client = sse.NewClient(listener.Url) listener.client = sse.NewClient(listener.Url)
go listener.client.Subscribe("", listener.handlePbEvent) go listener.client.Subscribe("", listener.handlePbEvent)
} }