2017-04-20 55 views
0

我有问题显示来自mqtt经纪人的话题。我所得到的全部是System.byte[]我知道我是连接的,因为每次我从hiveMQ发布消息时,都会将另一个System.bytes添加到控制台。请帮忙。与mqtt经纪人合作的C#应用​​程序

static void Main(string[] args) 
{ 
    MqttClient client = new MqttClient("myip", 1883,false,null,null,0,null,null); 
    client.MqttMsgPublishReceived += client_MqttMsgPublishReceived; 

    client.Connect(Guid.NewGuid().ToString()); 
    ushort msgId = client.Subscribe(new string[] { "broTest" }, 
    new byte[] { MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE }); 
    client.ProtocolVersion = MqttProtocolVersion.Version_3_1_1; 
} 

static void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e) 
{ 
    // handle message received 

    Console.WriteLine("message=" + e.Message.ToString()); 

} 

回答

1

您必须将字节[]转换为字符串,以便在控制台中显示。

static void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e) 
     {    
      Console.WriteLine(Encoding.UTF8.GetString(e.Message));    
     } 
+0

烨thanks..already得到它...感谢您的时间 – Dwight

+0

@Dwight你好,请接受答案ID提出的建议解决您的问题! :) –