跳至正文

gRPC 与协议

职责划分

仓库内容
flare-protoProtobuf 消息、会话、事件载荷(与 SDK IMMessage 对齐)
flare-grpc-proto服务定义、RPC 方法
flare-server-core服务端通用拦截器、发现、MQ 抽象

客户端 不直接依赖 gRPC 生成码(除 Capability HTTP 等少数端点);由 SDK 封装。

命名空间(示例)

  • flare.common.v1Message, ConversationType, ConversationSummary
  • 各服务 crate 内实现对应 *.grpc 服务

升级协议时:

  1. 先改 proto,兼容字段编号
  2. 发布 reader/writer 与消费者
  3. 再发 SDK(解码逻辑在 flare-im-core-sdk::model

HTTP 与 gRPC 混用

通道用途
WS/QUIC实时信令、消息上下行
gRPC (HTTP/2)服务间、Capability、Online
HTTP REST网关暴露的管理/媒资接口(视网关配置)

上下文传播

服务端业务 Handler 应透传 Ctxx-trace-id, x-user-id, x-tenant-id),与项目规范一致。

Core gRPC API 速查

服务Proto主要 RPC典型调用方
RouterUpstreamServicerouter.protoRouteMessageRouteEventRouteAckRouteDatasignaling gateway
MessageSendServicemessage_service.protoSendMessageBatchSendMessageSendSystemMessageExecuteEventSendAckroute、bridge、gateway
MessageActionServicemessage_service.protoRecallMessageEditMessageDeleteMessageAddReactiongateway、管理面
ConversationReadServiceconversation_service.proto会话查询、摘要查询gateway、sync
ConversationManageServiceconversation_service.proto创建会话、参与者管理social bridge、管理面
StorageReaderServicestorage_service.proto历史消息读取query、sync
SyncServicesync_service.protoExecuteSyncSDK、gateway
MediaServicemedia_service.proto上传、预签名、处理、引用gateway、SDK
PushServicepush_service.proto推送请求(官网暂不展开orchestrator、push worker
CapabilityServicecapability_service.proto能力目录、授权、Dispatchgateway、orchestrator
HookPlugincapability_service.protoCall(GenericRequest)orchestrator
ExtensionPlugincapability_service.protoCall(GenericRequest)capability、工具面

完整业务扩展点和接入方式见 业务扩展点与 API 接入

HTTP Gateway 关系

flare-api-gateway 是 HTTP/JSON 到内部 gRPC 的适配层:

  • HTTP 客户端调用 /api/v1/*
  • Gateway 完成认证、限流、DTO 校验、上下文构建。
  • Gateway 透传 metadata 调用 Core gRPC。
  • Gateway 将 gRPC 状态映射为统一 ApiResponse<T>

网关规范见 flare-im-core/flare-api-gateway/GATEWAY_SPEC.md

下一步