【问题标题】:How to use message queue with Windows phone 8 app?如何在 Windows phone 8 应用程序中使用消息队列?
【发布时间】:2014-10-11 05:14:02
【问题描述】:

我有一个 windows phone 8 应用程序,它使用 basicHttpBinding 与 WCF 服务通信。该服务托管在 IIS7 上(不使用 windows azure)

由于服务可能因任何原因而中断,我正在探索使用消息队列来提高系统的可靠性。

我查看了 WCF 中提供的 NetMsmqBinding - 但看起来 WP8 客户端不支持此绑定。 我也在考虑使用 RabbitMQ,但找不到任何使用 WCF 的 WP8 客户端的工作示例。

请任何人都可以建议最好的前进方式是什么?任何示例代码(或链接)将不胜感激。

谢谢

【问题讨论】:

    标签: wcf windows-phone-8 rabbitmq


    【解决方案1】:

    首先,netMsmqBinding 不能在互联网上使用。这是因为它使用了未通过 http 公开的 MSMQ。

    当您通过 Internet 调用资源时,您需要在应用程序中考虑不可靠性。因为你会遇到number of possible problems,所以一般不是if的情况,而是when的情况,失败了,重要的是how your application deals with this

    即便如此,您也可以采取一些措施来最大程度地减少您遇到的可靠性问题,其中之一就是排队。

    排队的用处在于使大型、复杂和长时间运行的进程脱机。由于对同步实现的此类进程的调用经常超时,因此您可以通过使实际处理调用异步来获得很多可靠性。

    例如,让 Web 服务器通过消息队列调用一些离线进程并返回客户端他们的请求正在处理中是很常见的。因为这样做很便宜,所以呼叫失败的可能性要小得多。一旦完成离线处理,您的问题就会变成如何return the response to the client 的问题之一。

    【讨论】:

    • 谢谢 - 实际上我已经在客户端上使用异步操作了。因此,如果客户端将数据发送到服务并且失败,客户端将收到一条错误消息,并且一旦服务返回,它可以重新发送数据。所以没有数据丢失。但是,我正在探索是否可以避免在失败时依赖用户重新发送数据 - 或者我可以使用消息队列来减轻用户的负担。
    • 嗨@gunnerz,如果您需要排队绑定,不确定我可以帮助您。但似乎你在做所有正确的事情。我想你可以自动重试,这样用户就不需要重新发送。
    猜你喜欢
    • 1970-01-01
    • 2015-05-26
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多