start method

Future<void> start({
  1. int? preferPort,
})

Implementation

Future<void> start({int? preferPort}) async {
  try {
    int targetPort = preferPort ?? FlutsimConfig.unifiedWebSocketPort;
    _server = await HttpServer.bind(InternetAddress.anyIPv4, targetPort);
    _boundPort = _server!.port;

    _server!.listen((HttpRequest request) {
      if (WebSocketTransformer.isUpgradeRequest(request)) {
        WebSocketTransformer.upgrade(request).then((WebSocket webSocket) {
          _handleWebSocket(webSocket);
        });
      } else {
        request.response.statusCode = 400;
        request.response.close();
      }
    });
  } catch (e) {
    // If the port is taken, try finding another one just like server.dart does
    print('❌ Failed to start Unified WebSocket server: $e');
  }
}