我想开发一个 C# windows 客户端应用程序,每当插入新的数据库记录时通知用户。服务器是一个远程 linux 机器,以 mysql 作为数据库引擎,它有 PHP 前端。由于我是 C# 世界的新手,我想就如何解决这个问题提出一些建议。谢谢!
问问题
2748 次
1 回答
0
我不熟悉 .NET 的 MySQL API,但是在网上快速搜索并没有比实现自己的轮询逻辑更好,例如这个 SO 问题:Update C# client when database is updated
为此,您可以将 DateTime 列添加到您需要轮询并存储最后轮询时间的所有表中。这样就可以查询自上次轮询间隔以来已更改的所有记录。
至于客户端的通知,这里我建议使用某种消息框架。在同质的 Microsoft 环境中,我建议使用 Microsoft Message Queue MSMQ。(纯)MSMQ 的优点在于该功能由 .NET开箱即用地支持。使用它很简单,您会很快找到使用它的方法。
还有许多其他框架构建在 MSMQ 之上,使您的生活更轻松和/或提供附加功能,例如开源项目MassTransit或NServiceBus。因为您同时使用Windows 和 Linux系统,所以可能值得看看支持大多数主要操作系统的RabbitMQ 。
使用这种消息传递系统的优势在于,您可以配置应用程序,使消息发布者和接收者都不需要相互了解。例如,它们不需要彼此有硬编码的引用(或地址)。
这为您提供了极大的灵活性和可扩展性,无论您在任何给定时间有多少客户在线。
于 2012-08-08T13:45:49.817 回答