async void Start()
    {
        CarrierInfo carrierInfo = new TestCarrierInfoClass();
        DeviceInfo  deviceInfo  = new DeviceInfoIntegration(carrierInfo);

        mxi      = new MobiledgeXIntegration(carrierInfo: carrierInfo, deviceInfo: deviceInfo);
        location = await MobiledgeXIntegration.GetLocationFromIP();

        mxi.SetFallbackLocation(location.longitude, location.latitude);
        mxi.useFallbackLocation = true;
        try
        {
            await mxi.RegisterAndFindCloudlet();
        }
        //FindCloudletException is thrown if there is no app instance in the user region
        catch (FindCloudletException fce)
        {
            Debug.Log("FindCloudletException: " + fce.Message + "Inner Exception: " + fce.InnerException);
            // your fallback logic here
        }
        mxi.GetAppPort(LProto.L_PROTO_TCP); // or LProto.L_PROTO_UDP
        string url = mxi.GetUrl("http");    // or another L7 proto such as https, ws, wss, udp

        Debug.Log("url : " + url);          // Once you have your edge server url you can start communicating with your Edge server
    }