我目前正在我的工作地点创建一个公告系统。该系统的作用将是取代所有用户的电子邮件,因为人们滥用它和普遍滥用该设施。该系统将包括:
网络门户:将允许工作人员输入任何重要公告(这将通过AD进行限制)。
SQLServer2k5DB:将保存公告以及工作人员的记录,如果他们已经阅读了公告等。
前端:在WPF & C#中创建的已接近完成,它将向用户显示公告。
xml:客户端将经常联系,这将返回一个供客户端读取的文件。
然而,我的老板现在已经改变了目标帖子,并且希望一旦通知被写入数据库,就会出现在用户面前,而不是等待客户端与网页联系。
所以现在我有点不确定该怎么做。我有一个想法,我会创建一个小型服务器应用程序,以监测新的公告,然后联系客户,以通知他们接近网站,以获得他们需要的信息。但我只是想看看是否有更好或更有效的方法来做这件事,或者其他人是否有更合适的想法或建议。
发布于 2010-01-21 14:40:25
Hm一个有趣的项目--您可以尝试满足消息传递需求的一种方法是使用WCF双工web服务(http://msdn.microsoft.com/en-us/library/ms731064.aspx)。
它看起来是这样的- WCF服务托管在中央应用服务器上,与DB对话。所有客户端都使用双工双向绑定订阅此WCF服务.然后,他们可以有效地听任何通知的新宣布--你会得到一个不错的回调与args给他们一个祝酒词。
应该是一种有效的方法。
在双工绑定中,您提供了两个在客户机上生成的接口,一个用于服务,另一个用于回调类:
public interface ICalculatorDuplex
{
[OperationContract(IsOneWay = true)]
void Clear();
[OperationContract(IsOneWay = true)]
void AddTo(double n);
[OperationContract(IsOneWay = true)]
void SubtractFrom(double n);
[OperationContract(IsOneWay = true)]
void MultiplyBy(double n);
[OperationContract(IsOneWay = true)]
void DivideBy(double n);
}
public interface ICalculatorDuplexCallback
{
[OperationContract(IsOneWay = true)]
void Equals(double result);
[OperationContract(IsOneWay = true)]
void Equation(string eqn);
}所以我在设想这样的事情:
public interface IAnnouncementServiceDuplex
{
[OperationContract(IsOneWay = true)]
void Subscribe(int userId);
}
public interface ICalculatorDuplexCallback
{
[OperationContract(IsOneWay = true)]
void SendNotification(AnnouncementData data);
}https://stackoverflow.com/questions/2109932
复制相似问题