

# 近似事件
<a name="iot-sidewalk-proximity-events"></a>

AWS IoT 从 Sidewalk 设备接收信标时近似事件发布事件通知。当您的 Sidewalk 设备接近 Amazon Sidewalk 时，Amazon Sidewalk 会按定期间隔筛选从您的设备发送的信标，并通过 AWS IoT Wireless 接收信标。然后，在收到信标时，AWS IoT Wireless 通知您这些事件。

## 近似事件的工作原理
<a name="iot-sidewalk-proximity-events-work"></a>

近似事件会在 AWS IoT 收到信标时通知您，您的 Sidewalk 设备可以随时发射信标。当您的设备靠近 Amazon Sidewalk 时，Sidewalk 将接收信标，并按定期时间间隔将信标转发给 AWS IoT Wireless。Amazon Sidewalk 已将此时间间隔配置为 10 分钟。当 AWS IoT Wireless 从 Sidewalk 接收到信标时，您将收到事件通知。

近似事件将在发现信标或信标丢失时通知您。您可以配置近似事件通知的时间间隔。

## 启用近似事件的通知
<a name="iot-sidewalk-proximity-events-enable"></a>

在 Sidewalk 近似保留主题的订阅方可以接收消息之前，必须从 AWS 管理控制台 或使用 API 或 CLI 为订阅方启用事件通知。您可以为 AWS 账户 中的所有 Sidewalk 资源或所选资源启用这些事件。有关如何启用这些事件的更多信息，请参阅 [启用无线资源的事件](iot-wireless-control-events.md)。

## 近似事件的 MQTT 主题的格式
<a name="iot-sidewalk-proximity-events-mqtt"></a>

要通知近似事件，您可以订阅以美元 (\$1) 符号开头的 MQTT 保留主题。有关更多信息，请参阅《AWS IoT Developer Guide》**中的 [MMQTT topics](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

Sidewalk 近似事件的保留 MQTT 主题使用以下格式：
+ 对于资源级主题：

  `$aws/iotwireless/events/{eventName}/{eventType}/sidewalk/wireless_devices`
+ 对于标识符主题：

  `$aws/iotwireless/events/{eventName}/{eventType}/sidewalk/{resourceType}/{resourceID}/{id}`

其中：

**\$1eventName\$1**  
\$1eventName\$1 必须是 `proximity`。

**\$1eventType\$1**  
\$1eventType\$1 可以是 `beacon_discovered` 或 `beacon_lost`。

**\$1resourceType\$1**  
\$1resourceType\$1 可以是 `sidewalk_accounts` 或 `wireless_devices`。

**\$1resourceID\$1**  
\$1resourceID\$1 对于 \$1resourceType\$1 `sidewalk_accounts` 为 `amazon_id`，对于 \$1resourceType\$1 `wireless_devices` 为 `wireless_device_id`。

您还可以使用 `+` 通配符同时订阅多个主题。`+` 通配符匹配级别中包含字符的任何字符串。例如，如果您希望收到所有可能的事件类型（`beacon_discovered` 和 `beacon_lost`）的通知以及注册到特定 Amazon ID 的所有设备通知，可以使用以下主题筛选条件：

`$aws/iotwireless/events/proximity/+/sidewalk/sidewalk_accounts/amazon_id/+`

**注意**  
您不能使用通配符 `#` 订阅保留主题。有关主题筛选器的更多信息，请参阅《AWS IoT Developer Guide》**中的 [MQTT topic filters](https://docs.aws.amazon.com/iot/latest/developerguide/topicfilters.html)。

## 近似事件的消息负载
<a name="iot-sidewalk-proximity-events-json"></a>

启用近似事件通知后，将通过 MQTT 随 JSON 负载一起发布事件消息。事件包含以下负载示例：

```
{    
    "eventId": "string", 
    "eventType": "beacon_discovered|beacon_lost",
    "WirelessDeviceId": "string",
    "timestamp": "1234567890123",

    // Event-specific fields
    "Sidewalk": {
        "AmazonId": "string",
        "SidewalkManufacturingSn": "string"        
    }
}
```

负载包含以下属性：

**eventId**  
唯一的事件 ID，字符串。

**eventType**  
发生的事件类型。可以是 `beacon_discovered` 或 `beacon_lost`。

**WirelessDeviceId**  
无线设备的标识符。

**timestamp**  
事件发生时的 Unix 时间戳。

**sidewalk**  
您要接收其事件通知的 Sidewalk Amazon ID 或 `SidewalkManufacturingSn`。