2017-09-18 48 views
0

我目前将通知从我的桌面C#WinForms应用程序推送到iOS设备。是否有可能采取相同的方式?例如从iOS设备发送通知到WinForms应用程序。使用Azure通知集线器推送到C#WinForms应用程序

如果不可能,让iOS应用程序执行某些任务的WinForms应用程序知道的最佳实践是什么。

谢谢!

回答

0

Azure通知中心通常用于移动设备。对于Winforms应用程序,我建议你使用Azure Service Bus主题服务。

在您的IOS方面,您可以将消息发送到主题。

var connectionString = "<your connection string>"; 
var topicName = "<your topic name>"; 

var client = TopicClient.CreateFromConnectionString(connectionString, topicName); 
var message = new BrokeredMessage("This is a test message!"); 

client.Send(message); 

在Winform方面,您可以订阅主题并接收来自主题的消息。收到消息后,您可以在Winform应用程序中执行任何您想要的操作。

var connectionString = "<your connection string>"; 
var topicName = "<your topic name>"; 

var client = SubscriptionClient.CreateFromConnectionString(connectionString, topicName, "<your subscription name>"); 
client.OnMessage(message => 
{ 
    Console.WriteLine(String.Format("Message body: {0}", message.GetBody<String>())); 
    Console.WriteLine(String.Format("Message id: {0}", message.MessageId)); 
}); 
+0

谢谢你的回复!这正是我正在寻找的! Howerver,我有一个小问题。发送消息需要很长时间(〜10秒)。我相信有一个问题,但我无法解决它。我正在使用你发布的代码。 – Omer

+0

更新:我能够将服务总线包添加到Xamarin.iOS项目。但是,它没有任何作用。 TopicClient不被识别并且不接受任何使用语句。有任何想法吗? – Omer

+0

Azure服务SDK不适用于Xamarin.iOS项目。请改用REST API。 [使用REST API发送消息](https://docs.microsoft.com/en-us/rest/api/servicebus/send-message-to-queue) – Amor

相关问题