作者:mobiledu2502909027 | 来源:互联网 | 2022-12-27 11:12
我有一个服务器将消息传递给客户端.消息具有不同类型,服务器具有客户端的通用handleMessage
和passMessage
方法.
现在我打算对此进行调整并使用GRPC.我知道我可以通过在我的.proto
文件中定义服务来公开服务器的所有方法.但是还有一种方法可以:
流
异质类型
一个RPC调用
使用GRPC
有oneof
一个允许我设置只有一个属性设置的消息.我可以拥有它MessageContainer
,oneof
并且我的所有消息类型都包含在此容器中.现在容器只有一种类型,我只需要写一个
service {
rpc messageHandler(ClientInfo) returns (stream MessageContainer)
}
这样,服务器可以通过一个唯一的接口将多种类型流式传输到客户端.这有意义吗?或者将所有方法单独暴露是否更好?
UPDATE
我找到了这个争论oneof
的方法.我明白这一点,因为它避免了我必须创建潜在的数十个服务和存根.它还有助于确保它是一个FIFO设置,而不是多路复用多个流,而不确定哪个消息首先出现.但由于某种原因它感觉很脏.