【问题标题】:How to subscribe to CloudMQTT using MqttDotNet or any other dot net client如何使用 MqttDotNet 或任何其他点网客户端订阅 CloudMQTT
【发布时间】:2017-06-04 07:57:35
【问题描述】:

我已经使用https://www.cloudmqtt.com/ 创建了新的 MQTT 实例,下面是详细信息

下面是我使用 CloudMQTT 网站 (https://www.cloudmqtt.com/docs-dotnet.html) 上给出的 MqttDotNet 的代码。这给出了错误“无法连接到代理” 我不确定如何连接到 MQTT 连接字符串应该是如何使用用户名和密码。

  using System;
using MqttLib;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Starting MqttDotNet sample program.");
            Console.WriteLine("Press any key to stop\n");
            Program prog = new Program(Guid.NewGuid().ToString());
            prog.Start();

            Console.ReadKey();
            prog.Stop();
        }

        IMqtt _client;
        Program(string clientId)
        {
            // string connectionString = "mqtt://m13.cloudmqtt.com:12644";
            string connectionString = "mqtt://moraasdrxf:_WaY_f_sLt8Efd@m13.cloudmqtt.com:12644";
            // Instantiate client using MqttClientFactory
            _client = MqttClientFactory.CreateClient(connectionString, clientId, "dhiraj", "dhiraj");
            // Setup some useful client delegate callbacks
            _client.Connected += new ConnectionDelegate(client_Connected);
            _client.ConnectionLost += new ConnectionDelegate(_client_ConnectionLost);
            _client.PublishArrived += new PublishArrivedDelegate(client_PublishArrived);
        }

        void Start()
        {
            // Connect to broker in 'CleanStart' mode
            Console.WriteLine("Client connecting\n");
            _client.Connect(true);
        }

        void Stop()
        {
            if (_client.IsConnected)
            {
                Console.WriteLine("Client disconnecting\n");
                _client.Disconnect();
                Console.WriteLine("Client disconnected\n");
            }
        }

        void client_Connected(object sender, EventArgs e)
        {
            Console.WriteLine("Client connected\n");
            RegisterOurSubscriptions();
            PublishSomething();
        }

        void _client_ConnectionLost(object sender, EventArgs e)
        {
            Console.WriteLine("Client connection lost\n");
        }

        void RegisterOurSubscriptions()
        {
            Console.WriteLine("Subscribing to mqttdotnet/subtest/#\n");
            //_client.Subscribe("mqttdotnet/subtest/#", QoS.BestEfforts);
            _client.Subscribe("dhiraj/test", QoS.BestEfforts);

        }

        void PublishSomething()
        {
            Console.WriteLine("Publishing on mqttdotnet/pubtest\n");
            _client.Publish("dhiraj/test", "Hello MQTT World", QoS.BestEfforts, false);
        }

        bool client_PublishArrived(object sender, PublishArrivedArgs e)
        {
            Console.WriteLine("Received Message");
            Console.WriteLine("Topic: " + e.Topic);
            Console.WriteLine("Payload: " + e.Payload);
            Console.WriteLine();
            return true;
        }
    }
}

谁能帮我解决这个问题??

【问题讨论】:

    标签: c# .net mqtt


    【解决方案1】:

    已解决。 MQTT点网实现使用tcp协议连接broker 连接字符串应该是 string connectionString = "tcp://m13.cloudmqtt.com:12644"

    【讨论】:

      猜你喜欢
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 2020-08-27
      • 1970-01-01
      • 2020-04-26
      • 2019-12-21
      • 2016-09-05
      相关资源
      最近更新 更多