具有多个属性问题的实体订阅

Entity subscription with more than one attribute issue

我有一个具有某些属性的实体。每个人都有一个订阅。这里是订阅的例子。

{ "entities": [ { "type": "Room", "isPattern": "false", "id": "Room5" } ], "attributes": [ ], "reference": "http://localhost:5050/notify", "duration": "P1M", "notifyConditions": [ { "type": "ONCHANGE", "condValues": [ "pressure" ] } ] }

问题是当某个属性发生变化时,通知会订阅完整的实体,包括未更改的属性。

是否有解决此问题的方法?

attributes 字段指定要通知的属性,因此如果您使用的属性名称等于 condValues 中使用的属性名称(而不是空列表,这意味着 "all the attributes") 那么通知将只包含修改后的属性。即:

{
    "entities": [
        {
            "type": "Room",
            "isPattern": "false",
            "id": "Room5"
        }
    ],
    "attributes": [ "pressure" ],
    "reference": "http://localhost:5050/notify",
    "duration": "P1M",
    "notifyConditions": [
        {
            "type": "ONCHANGE",
            "condValues": [
                "pressure"
            ]
        }
    ]
}

请注意,在这种情况下,如果您的实体可以在类型和您使用带有模式的订阅。后一个选项的示例如下所示:

{
    "entities": [
        {
            "type": "Room",
            "isPattern": "true",
            "id": ".*"
        }
    ],
    "attributes": [ "pressure" ],
    "reference": "http://localhost:5050/notify",
    "duration": "P1M",
    "notifyConditions": [
        {
            "type": "ONCHANGE",
            "condValues": [
                "pressure"
            ]
        }
    ]
}

这导致每次 Room 类型的实体的 pressure 发生变化时(无论是哪个实体 ID),您都会收到该实体的压力通知。