我有一个作为发布者运行的 Windows 服务,我正在尝试将 Xamarin Forms 设置为订阅者。下面的代码在控制台应用程序或 LinqPad 中运行良好,但是当复制并粘贴到 Xamarin 表单中时,SubscriberSocket 只是不响应来自服务器的消息。
你知道怎么接线吗?
我正在使用 NetMQ v 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");