【发布时间】:2020-08-08 11:59:47
【问题描述】:
我正在编写一个应用程序,客户端将连接到服务器并订阅数据更新。客户端告诉服务器它感兴趣的数据项,然后使用带有流式响应的方法进行订阅。这很好用。
但是,也有客户应该知道的与数据无关的通知。我不确定处理这些问题的最佳方法。我想到了:
向现有服务添加另一种方法。这就像数据订阅一样,但用于事件订阅。然后客户端可以订阅这两种类型的更新。不确定服务中的方法数量或服务中的职责混合的最佳做法是什么。
使用事件通知的流式方法从服务器公开第二个服务。这将使客户端使用多个连接来获取其数据 - 并使用另一个 TCP 端口。事件通知很少见(在连接的生命周期中可能只有少数),因此不确定这是否重要。同样 - 不确定从服务器公开的服务数量的最佳实践。
这似乎不合常规,但另一种方法可能是在客户端的连接序列期间将连接信息(IP 地址和端口)从客户端传递到服务器。然后,服务器可以使用它连接到客户端作为发送事件通知的一种方式。所以客户端和服务器都必须同时实现客户端和服务器角色。
关于如何管理此问题的任何建议?似乎这是一个已经解决的问题 - 但 gRPC 的 C++ 实现似乎落后于其他一些提供更多选项的语言。
哦 - 我正在 Windows 上执行此操作。
谢谢
【问题讨论】: