/// <summary> /// Disconnect from Piraeus /// </summary> /// <returns></returns> public async Task DisconnectAsync() { string id = null; try { id = channel.Id; DisconnectMessage msg = new DisconnectMessage(); if (channel.IsConnected) { await channel.SendAsync(msg.Encode()); } } catch (Exception ex) { string disconnectMsgError = String.Format("ERROR: Sending MQTT Disconnect message '{0}'", ex.Message); Console.WriteLine(disconnectMsgError); Trace.TraceError(disconnectMsgError); } try { channel.Dispose(); } catch (Exception ex) { string channelDisposeMsgError = String.Format("ERROR: MQTT channel dispose after disconnect '{0}'", ex.Message); Console.WriteLine(channelDisposeMsgError); Trace.TraceError(channelDisposeMsgError); } try { if (session != null) { session.Dispose(); session = null; } } catch (Exception ex) { string sessionDisposeMsgError = String.Format("ERROR: MQTT session dispose after disconnect '{0}'", ex.Message); Console.WriteLine(sessionDisposeMsgError); Trace.TraceError(sessionDisposeMsgError); } }
public async Task DisconnectAsync() { DisconnectMessage msg = new DisconnectMessage(); await channel.SendAsync(msg.Encode()); }