如何从新添加的主题或队列中获取通知?

时间:2014-02-12 09:45:45

标签: azure windows-phone-8 notifications azure-queues azure-servicebus-queues

我是新的Azure开发人员。我的方案是管理员将通过网站/ wp8发布新主题/队列,工作人员应该在wp8中获得关于新添加的主题/队列的通知(通过推送通知)。此时我已准备好所有部分,例如主题/队列创建,发送接收。但它有助于拉动基础。意义管理者可以创建主题并发布消息。那么工作人员必须订阅主题以接收消息,并且每次都检查是否有新内容?

所以我想根据通知建立这个系统。我的意思是每当主题用户中新添加的任何内容都应该收到通知(通过推送通知)。所以你能告诉我怎样才能实现这个目标?如果添加或删除主题等,是否有任何事件从服务总线生成?提前谢谢!

2 个答案:

答案 0 :(得分:2)

不幸的是,创建队列/主题时没有“通知挂钩”。我建议的两个选项是使用服务总线管理API定期扫描新的队列/主题,或者更好的是,设置一个“通知主题”,然后您的工作者角色实例可以监听。将消息放入此主题可以是“管理器”进程在配置新主题/队列时执行的另一个操作。

然而,如果你能解释一下你想要完成的更大的场景,我不禁怀疑可能有更好的方法来完成你所追求的目标。经过一段时间后,所有这些主题/队列都可能带来一些管理挑战。

答案 1 :(得分:2)

当然,我们确实有事件通知客户端何时将新消息添加到主题。使用消息泵机制,您可以将客户端挂钩到具有有效订阅的主题消息。

基本上,下面的代码显示了如何订阅该主题。

    static void Main(string[] args)
    {


        SubscriptionClient Client = null;

        OnMessageOptions options;
        string connectionString = "your topic Endpoint";

        Client =
           SubscriptionClient.CreateFromConnectionString
                   (connectionString, "YourTopicName", "YoursubscriberName");

        // Configure the callback options.
        options = new OnMessageOptions();
        options.AutoComplete = false;
        options.AutoRenewTimeout = TimeSpan.FromMinutes(1);

        Client.OnMessage((message) =>
        {
            try
            {
                 Console.WriteLine("Topic Message :  ID :" + message.MessageId + " , " + message.Label);


                message.Complete();



            }
            catch (Exception exp)
            {

                message.Abandon();
                Console.WriteLine("**Error Reciving Message**");

            }


        }, options);

        Console.ReadLine();
    }