next
挂起并等待在具体的事件 Event 环境下根据条件获取下一个匹配的 事件.
通过 next 进行匹配的事件,会根据对应的事件类型结合当前的 Event 的类型进行匹配。
next 对事件类型进行的对应的匹配规则对照表如下:
当前事件类型 | 目标事件同类型 | 目标事件不同类型 |
---|---|---|
Event | bot 的ID要相同 | 不会出现不同类型 |
OrganizationEvent | organization 的ID要相同 | 放行 |
UserEvent | user 的ID要相同 | 放行 |
MessageEvent | source 的ID要相同 | 放行 |
ChatRoomMessageEvent | author 的ID要相同 | 放行 |
如果你希望使用更复杂是匹配逻辑,请通过 waitingForNext 来自行编写逻辑。
超时处理
使用 withTimeout 或其衍生函数来进行超时控制。
val session: ContinuousSessionContext = ...
withTimeout(5.seconds) {
session {
next(id, FooEvent) { event -> // this: EventProcessingContext
// ...
true
}
}
}
你可能注意到了上述示例中出现了如下用法:
session {
next(id, FooEvent) { /* ... */}
}
这是通过扩展函数 ContinuousSessionContext.invoke 所提供的,旨在简化 next 这类函数的使用。
Receiver
当前所处的事件环境
Parameters
持续会话监听函数的唯一标识
所需目标函数类型
See also
挂起并等待在具体的事件 Event 环境下根据条件获取下一个匹配的 事件.
通过 next 进行匹配的事件,会根据对应的事件类型结合当前的 Event 的类型进行匹配。
更多说明请参考 Event.next.
See also
挂起并等待在当前的事件处理上下文 EventProcessingContext 中根据条件获取下一个匹配的 事件.
通过 next 进行匹配的事件,会根据对应的事件类型结合当前的 EventProcessingContext.event 的类型进行匹配。
更多说明参考 Event.next.
Receiver
当前的事件处理上下文环境
See also
挂起并等待在具体的事件 Event 环境下根据条件获取下一个匹配的 事件.
通过 next 进行匹配的事件,会根据对应的事件类型结合当前的 Event 的类型进行匹配。
next 对事件类型进行的对应的匹配规则对照表如下:
当前事件类型 | 目标事件同类型 | 目标事件不同类型 |
---|---|---|
OrganizationEvent | organization 的ID要相同 | 放行 |
UserEvent | user 的ID要相同 | 放行 |
MessageEvent | source 的ID要相同 | 放行 |
ChatRoomMessageEvent | author 的ID要相同 | 放行 |
如果你希望使用更复杂是匹配逻辑,请通过 waitingForNext 来自行编写逻辑。
超时处理
使用 withTimeout 或其衍生函数来进行超时控制。
val session: ContinuousSessionContext = ...
withTimeout(5.seconds) {
session {
next { event -> // this: EventProcessingContext
// ...
true
}
}
}
你可能注意到了上述示例中出现了如下用法:
session {
next(id, FooEvent) { /* ... */}
}
这是通过扩展函数 ContinuousSessionContext.invoke 所提供的,旨在简化 next 这类函数的使用。
Receiver
当前所处的事件环境
Parameters
持续会话监听函数的唯一标识