0

我正在使用两个 .NET Core Web API;一个用于发布内容,另一个用于使用 NATS 流服务器订阅该内容。

在出版商方面

string clientID = "abc-publisher";
string clusterID = "test-cluster";
string subject = "testing Subject1";
string data = "Testing with the API";

byte[] payload = Encoding.UTF8.GetBytes(data);
try
{
    var opts = StanOptions.GetDefaultOptions();
    //opts.StartWithLastReceived();
    opts.NatsURL = StanConsts.DefaultNatsURL;
    using (var c = new StanConnectionFactory().CreateConnection(clusterID, clientID,opts))
    {
        string returnData = c.Publish(subject, payload, (obj, pubArgs) =>
          {
              string s = pubArgs.GUID;

          });

    }
}
catch (Exception ex)
{
    string msg = ex.Message.ToString();
}

在订阅方

using (var c = new StanConnectionFactory().CreateConnection(clusterID, clientID)) {
    var opts = StanSubscriptionOptions.GetDefaultOptions();
    opts.StartWithLastReceived();
    var s = c.Subscribe(subject, (obj, args) =>
   {

       str = Encoding.UTF8.GetString(args.Message.Data);
   });
 }

但是当我运行项目时,我无法转到订阅者的回调方法。

4

1 回答 1

0

抱歉耽搁了。检查你的服务器日志,你应该得到一个错误,因为你的主题有空格。在 NATS 中,主题不能有空格,更多信息在这里

于 2020-03-11T17:21:27.880 回答