我有一个连接到多个服务的客户端应用程序 (WPF)。其中一项服务是提醒服务,它有一个回调给客户端,它可以向客户端发送一个“提醒”消息,客户端可以在屏幕上显示该消息。
但是您可能会问 - 这个回调操作何时从服务触发到客户端?
好吧,当一个新的提醒行被添加到数据库中时(通过“命令服务”),就会发生这种情况。
我有两种方法来实现这个:
方法一:
当“提醒服务”被实例化时,它还将启动一个“工作线程”,它将检查 MS SQL 数据库是否有新的提醒添加到数据库中(通过使用“Sql Dependency”或每隔几分钟轮询一次数据库) \ 小时)。一旦找到新的提醒 - “工作线程”应该循环连接到它的所有 WPF 客户端 - 并向他们发送“提醒回调”消息。
方法B:
让“命令服务”(将新提醒添加到数据库的实际服务)以某种方式触发“提醒服务”并告诉它 - '我刚刚向数据库添加了新提醒。继续并将提醒发送给所有连接的客户。
方法三:
这实际上是对方法 B 的详细说明 - 让“命令服务”连接到“提醒服务”并向其发送“发布提醒”消息,这反过来会使“提醒服务”遍历其所有客户端并发送它们通过回调方法提醒。
.
最好的方法是什么?有没有更好的主意来做到这一点?