modify websocketserver to broker with callback functions

This commit is contained in:
Adrian Zürcher
2025-06-19 19:22:23 +02:00
parent 9605b50198
commit 659cbe4072
19 changed files with 367 additions and 266 deletions

View File

@@ -36,7 +36,14 @@ func (d *DBMHandler) Subscribe(req *json_dataModels.Request, id string) {
continue
}
}
dp.AddSubscribtion(id, sub)
client := d.DBM.Conns.GetClient(id)
if client == nil {
d.Log.Warning("subscribe", "id "+id+" not found")
continue
}
dp.AddSubscribtion(client, sub)
resp.AddSubscription(json_dataModels.Subscription{
Uuid: dp.Uuid,
Path: dp.Path,
@@ -68,10 +75,17 @@ func (d *DBMHandler) Unsubscribe(req *json_dataModels.Request, id string) {
for _, sub := range req.Unsubscribe {
for _, dp := range d.DBM.QueryDatapoints(sub.Depth, sub.Uuid, sub.Path) {
if _, ok := dp.Subscriptions[id]; !ok {
client := d.DBM.Conns.GetClient(id)
if client == nil {
d.Log.Warning("subscribe", "id "+id+" not found")
continue
}
dp.RemoveSubscribtion(id)
if _, ok := dp.Subscriptions[client]; !ok {
continue
}
dp.RemoveSubscribtion(client)
resp.AddUnsubscription(json_dataModels.Subscription{
Uuid: dp.Uuid,
Path: dp.Path,