代码之家  ›  专栏  ›  技术社区  ›  yang-qu

通过WCF从SMS提供程序检索SMS消息

  •  0
  • yang-qu  · 技术社区  · 15 年前

    我有一个asp.net web应用程序来调用WCF服务中的函数来发送短信。在发送消息后,WCF服务需要继续检查SMS提供商的虚拟收件箱,并通知我的web应用程序是否有新的回复。可能有多个web应用要使用此服务。有什么好的方法来实现这一点?

    目前我在WCF服务中有这样一个函数,它是单向操作契约。 我正在考虑将实例管理配置为PerSession。

        public void Send(SMSMessage message)
        {
            bool startRetrieving = _smsContext.Send(message);
    
            //keep polling virtual inbox to retrieve replies until it's expired
            while (startRetrieving && DateTime.Now < message.ReplyExpiry)
            {
               //send a http request to check inbox
               //if there is any new reply, notify my web application by making 
               //a http request
               //Check the inbox every xxxx seconds.
               System.Threading.Thread.Sleep(xxxx);
            }
    
            //if it is expired, tell sender app that time to receiving reply is expired
        }
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   Shiraz Bhaiji    15 年前

    在这种情况下,相关模式非常适合。

    http://www.eaipatterns.com/ramblings/09_correlation.html

    基本思想是,每个调用或客户机都有自己的id,然后当答案返回时,您可以确定结果应该去哪里,因为相关id。

    如何实现它将取决于您的服务需要有多健壮。如果使用每个会话,并且计算机重新启动,并且您松开会话,这可以吗?

    当我们有一个系统,我们不能松散的信息,我们设置2个服务。一个用于发送呼叫,另一个用于将数据发送回客户端。如果出现任何故障,当系统再次备份时,将正确发送所有信息。