WingMan – Rev 1

Subversion Repositories:
Rev:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using MQTTnet;
using MQTTnet.Server;

namespace WingMan.Host
{
    public class MQTTServer
    {
        private IMqttServer Server { get; set; }
        public bool ServerRunning { get; set; }

        public MQTTServer()
        {
            Server = new MqttFactory().CreateMqttServer();
        }

        public async Task Stop()
        {
            await Server.StopAsync().ConfigureAwait(false);

            ServerRunning = false;
        }

        public async Task Start(IPAddress ipAddress, int port)
        {
            var optionsBuilder = new MqttServerOptionsBuilder()
                .WithDefaultEndpointBoundIPAddress(ipAddress)
                .WithDefaultEndpointPort(port);

            await Server.StartAsync(optionsBuilder.Build()).ConfigureAwait(false);

            ServerRunning = true;
        }
    }
}