У меня есть службы Windows, работающие в качестве издателя, и я пытаюсь настроить Xamarin Forms в качестве подписчика. Приведенный ниже код отлично работает в консольном приложении или LinqPad, но при копировании и вставке в Xamarin Forms SubscriberSocket просто не отвечает на сообщения с сервера.
Вы знаете, как подключить это?
Я использую NetMQ версии 4.0.0.1.
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
Task.Run(() => StartPubSubSocketSubscriber());
}
private void StartPubSubSocketSubscriber()
{
string topic = "TopicA";
using (var subSocket = new SubscriberSocket())
{
subSocket.Options.ReceiveHighWatermark = 1000;
subSocket.Connect("tcp://192.168.30.120:5556");
subSocket.Subscribe(topic);
while (true)
{
string messageTopicReceived = subSocket.ReceiveFrameString();
string messageReceived = subSocket.ReceiveFrameString();
Device.BeginInvokeOnMainThread(() =>
{
label.Text = messageReceived;
});
}
}
}
}
Я также пытался запустить фоновый поток с помощью Task.Factory.StartNew(() => StartPubSubSocketSubscriber(), TaskCreationOptions.LongRunning);
, но он так же не отвечает на сообщения от издателя.
Спасибо.
PS: удалено subSocket.Connect("tcp://localhost:5556");
localhost:5556
, но эмулятор не на той же машине. На самом деле я запустил его на телефоне и указал на сервер, используя явный IP-адрес... к сожалению, ничего.subSocket.Connect("tcp://192.168.30.120:5556");
- person Fabio S.   schedule 03.10.2018