예제 #1
0
        public async Task <string> GetHostHelper(MobiledgeXIntegration mxi, string proto, int port = 0)
        {
            bool registerCheck = await RegisterHelper(mxi);

            await Task.Delay(TimeSpan.FromMilliseconds(1000));

            if (!registerCheck)
            {
                throw new RegisterClientException("RegisterClient Failed");
            }
            bool findCloudletCheck = await FindCloudletHelper(mxi);

            await Task.Delay(TimeSpan.FromMilliseconds(1000));

            if (!findCloudletCheck)
            {
                throw new FindCloudletException("FindCloudlet Failed");
            }

            AppPort appPort;

            switch (proto)
            {
            case "udp":
                appPort = mxi.GetAppPort(LProto.L_PROTO_UDP, port);
                break;

            case "ws":
            case "wss":
            case "http":
            case "https":
            default:
                appPort = mxi.GetAppPort(LProto.L_PROTO_TCP, port);
                break;
            }
            return(mxi.GetHost(appPort));
        }