main function

void main()

Implementation

void main() async {
  final config = MqttBrokerConfig(
    port: 12343,
    useSSL: false,
    allowAnonymous: true,
    sessionExpiryInterval: Duration(hours: 24),
    messageExpiryInterval: Duration(hours: 1),
  );

  final broker = MqttBroker(config);

  try {
    await broker.start();

    // Add users if authentication is enabled
    if (config.authenticationRequired) {
      broker.addCredentials('admin', 'secure_password');
      broker.addCredentials('user1', 'password123');
    }

    log('Broker is running. Press Ctrl+C to stop.');

    // Handle shutdown gracefully
    ProcessSignal.sigint.watch().listen((_) async {
      log('\nShutting down broker...');
      await broker.stop();
      exit(0);
    });
  } catch (e) {
    log('Failed to start broker: $e');
    exit(1);
  }
}