Fer*_*han 4 c# java client-server
我正在编写一个简单的会计程序,包括几个C#winform客户端和一个将数据读/写到数据库中的java服务器应用程序.其中一个要求是所有C#客户端都应该从服务器接收更新.例如,如果用户a从其C#客户端创建新发票,则其他用户应从其客户端看到此新发票.
我的经验主要是Web开发,我不知道用C#s客户端和Java servlet服务器满足这个要求的最佳方法是什么.
我最初的目的是使用Glassfish运行ActiveMQ并使用消息传递pub/sub方法,以便可以将更新推送到C#客户端.我将创建不同的主题,如newInvoice,cancelInvoice等,以区分消息类型.每条消息都只包含以JSON编码的对象.
但在我看来,这涉及到相当多的工作.鉴于我的用户群非常小(只有3或4个并发用户),在我看来应该有一些更简单的解决方案.(我不熟悉套接字编程:))
我知道这是一个客户端 - 服务器编程101个问题,但如果有经验的程序员可以指出我一些简单的解决方案,这将是很好的.
这里最简单的方法通常是简单地使用轮询 - 即让客户端每次(您的时间间隔)查询数据.这避免了一系列问题(防火墙,安全性,视线,分辨率,客户端跟踪等).
使用WCF,您可以在双工通道上进行回调(允许服务器主动向客户端发送消息),但这更复杂.我重视简单,所以我通常只是轮询.
在这里有所帮助的技巧是设计系统以具有用于查询"自x以来的变化"的内置机制 - 例如,可能由数据库触发器提供的审计表.当然,具体细节因项目而异.
您可能想要查看的另一个选项是ADO.NET Sync Services; 这可以满足您的要求,保持数据库的本地副本与服务器保持同步 - 但它有一些复杂性.这在"本地数据库缓存"VS模板中可用(IIRC).
| 归档时间: |
|
| 查看次数: |
4461 次 |
| 最近记录: |