我是新的Azure开发人员。我的方案是管理员将通过网站/ wp8发布新主题/队列,工作人员应该在wp8中获得关于新添加的主题/队列的通知(通过推送通知)。此时我已准备好所有部分,例如主题/队列创建,发送接收。但它有助于拉动基础。意义管理者可以创建主题并发布消息。那么工作人员必须订阅主题以接收消息,并且每次都检查是否有新内容?
所以我想根据通知建立这个系统。我的意思是每当主题用户中新添加的任何内容都应该收到通知(通过推送通知)。所以你能告诉我怎样才能实现这个目标?如果添加或删除主题等,是否有任何事件从服务总线生成?提前谢谢!
答案 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();
}