vsomeip-02 事件Events、方法Methods、字段Field使用场景区别
请求/响应调用,Client想更改提供程序端值时, Server要将Client设置的数据通过Response反馈给Client,以便Client确认设置的数据是否成功。: 请求/响应调用, Client调用来显式地查询提供程序的值, request消息中payload为空,response消息中payload中的值就是field的值。:当字段的值发生变化时,服务端自动通知所有订阅的客户端(类似“
参考:https://zhuanlan.zhihu.com/p/626401884

一、事件Events: 提供周期性发送的数据,或在提供者到订阅服务器的更改时发送的数据。
二、方法Methods: 远程过程调用, 采用Request-Response机制进行通信, Fire&Forget
三、字段Fields: 是下列三个中的一个或多个的组合
--- notifier: 遵循订阅-发布机制,以事件组的形式来订阅, Server发送到Client
--- getter: 请求/响应调用, Client调用来显式地查询提供程序的值, request消息中payload为空,response消息中payload中的值就是field的值
--- setter: 请求/响应调用,Client想更改提供程序端值时, Server要将Client设置的数据通过Response反馈给Client,以便Client确认设置的数据是否成功。
Request-Response和Fire & Forget本质区别
| 区别 | Request-Response | Fire & Forget |
|---|---|---|
| 响应机制 | 同步,服务端必须返回响应 | 异步,客户端发送后立即继续执行,不阻塞。不等待服务端的响应,服务端也不会返回任何响应。 |
| 可靠性 | 高(明确知道结果) | 低(无法确认是否处理) |
| 网络开销 | 较高(需传输响应) | 较低(仅发送请求) |
| 适用场景 |
需确认结果的调用(如读取传感器数据、配置参数等)。 |
无需确认的单向通知(比如,日志上报、事件通知等无需确认的场景。); 实时性要求高但允许偶尔丢失数据的场景(如周期性状态广播)。 |
Fire & Forget 和 事件(Events)的本质区别
| 特性 | Fire & Forget方法 | 事件(Events) |
|---|---|---|
| 通信模型 | 单向的远程过程调用(RPC) | 服务端主动推送的发布/订阅(Pub-Sub)模型 |
| 触发方 | 由客户端主动发起调用 | 由服务端主动触发推送(如状态变化时) |
| 数据方向 | 客户端→服务端(单向) | 服务端→客户端(单向) |
| 协议支持 | 基于SOME/IP的RPC机制(Message Type=0x01) | 基于SOME/IP的Event/Field机制 |
| 数据时效性 | 按需发送(客户端触发) | 实时或周期性推送(服务端控制) |
场景对比 |
|
|
Notifier机制与Events(事件)都遵循发布-订阅(Pub-Sub)模型,本质区别:
| 特性 | Fields + Notifier | Events |
|---|---|---|
| 数据模型 |
表示服务端的某个可变状态变量(如车速、温度等):
|
服务端主动触发的单向通知, 客户端只能订阅 |
| 读写控制 | 支持Getter/Setter/Notifier | 仅支持订阅(无Setter/Getter) |
| 触发条件 | 值变化时自动通知(状态驱动) | 服务端显式触发(事件驱动) |
| 数据关联性 | 始终关联一个持久状态 | 可能独立于状态(如瞬时事件) |
| 典型用例 | 车速、温度等连续状态同步 | 错误告警、用户按键事件 |
更多推荐



所有评论(0)