# 从事件总线中订阅消息


//订阅所有设备上线消息
@Subscribe("/device/*/*/online")
public Mono<Void> handleDeviceOnline(DeviceOnlineMessage message){
    //处理消息
    return doSomeThing();
}

# 设备消息

# topic

所有设备消息的topic的前缀均为: /device/{productId}/{deviceId}. 如:设备device-1上线消息: /device/product-1/device-1/online. 可通过通配符订阅所有设备的指定消息,如:/device/*/*/online, 或者订阅所有消息:/device/**.

说明

使用通配符订阅可能将收到大量的消息,请保证消息的处理速度,否则会影响系统消息吞吐量.

# 设备Topic列表

警告

列表中的topic已省略前缀/device/{productId}/{deviceId},使用时请加上.

topic 类型 说明
/online DeviceOnlineMessage 设备上线
/offline DeviceOfflineMessage 设备离线
/message/event/{eventId} DeviceEventMessage 设备事件
/message/property/report ReportPropertyMessage 设备上报属性
/message/property/read/reply ReadPropertyMessageReply 读取属性回复
/message/property/write/reply WritePropertyMessageReply 修改属性回复
/message/function/reply FunctionInvokeMessageReply 调用功能回复
/register DeviceRegisterMessage 设备注册,通常与子设备消息配合使用
/unregister DeviceUnRegisterMessage 设备注销,同上
/message/children/{childrenDeviceId}/{topic} ChildDeviceMessage 子设备消息,{topic}为子设备消息对应的topic
/message/children/reply/{childrenDeviceId}/{topic} ChildDeviceMessage 子设备回复消息,同上

# 设备告警

在配置了设备告警规则,设备发生告警时,会发送消息到消息网关.

告警topic格式:/alarm/{targetType}/{targetId}/{alarmId}/record

占位符标识 名称 数据值说明
targetType 告警目标类型 支持device(设备)product(产品)org(组织)other(其它)四种类型。
targetId 告警目标id 分别为告警目标类型的数据id。其中其它 类型的告警目标id为场景联动id
alarmId 告警配置id 告警配置id

告警内容

字段 名称 类型
id string 告警数据ID
alarmConfigId string 告警配置id
alarmConfigName string 告警配置名称
alarmRecordId string 告警记录ID
level int 告警级别。支持
alarmTime long 告警时间
description string 说明
targetType string 告警目标类型
targetName string 告警目标名称
targetId string 告警目标id
sourceType string 告警源类型。由场景触发的告警,则源类型为场景(scene)
sourceId string 告警源Id。由场景触发的告警,则源ID为场景Id
sourceName string 告警源名称。由场景触发的告警,则源名称为场景名称
bindings list 其他从规则中获取到到信息。如告警配置人的用户信息

# 日志

# 系统日志

topic格式: /logging/system/{logger名称,.替换为/}/{level}.

`/logging/system/org/jetlinks/pro/TestService/{level}`

{
"name":"org.jetlinks.pro.TestService", //logger名称
"threadName":"线程名称",
"level":"日志级别",
"className":"产生日志的类名",
"methodName":"产生日志的方法名",
"lineNumber"32,//行号
"message":"日志内容",
"exceptionStack":"异常栈信息",
"createTime":"日志时间",
"context":{} //上下文信息
}