/// <summary> /// 连接到服务器 /// </summary> /// <param name="option">选项</param> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="MqttException"></exception> /// <returns></returns> private ITaskSetter <ConnectError> ConnectInternal(ConnectOption option) { if (option == null) { throw new ArgumentNullException(); } this.connectOpt = option; var taskId = this.GenerateTaskId(); var setter = this.taskSetterTable.Create <ConnectError>(taskId); var mqttOptions = this.AutoRef <MqttConnectOptions>(); var opt = mqttOptions.ToStruct(taskId, option.ToStruct()); var er = MQTTAsync.MQTTAsync_connect(this.handle, ref opt); this.EnsureSuccessCode(er); return(setter); }
/// <summary> /// 连接到服务器 /// </summary> /// <param name="option">选项</param> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="MqttException"></exception> /// <returns></returns> public Task <ConnectError> ConnectAsync(ConnectOption option) { return(this.ConnectInternal(option).GetTask()); }
/// <summary> /// 连接到服务器 /// </summary> /// <param name="option">选项</param> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="MqttException"></exception> /// <returns></returns> public ConnectError Connect(ConnectOption option) { return(this.ConnectInternal(option).GetResult()); }