/// <summary> /// Register local server to DSM and mark this machine as ready /// </summary> /// <param name="ip">Local IP Address</param> /// <param name="port">Port number</param> /// <param name="name">Name to uniquely identify this local server</param> /// <param name="callback">Returns a Result via callback when completed</param> public void RegisterLocalServer(string ip, uint port, string name, ResultCallback callback) { Report.GetFunctionLog(this.GetType().Name); Assert.IsNotNull(name, "Can't Register server; podName is null!"); if (!this.serverSession.IsValid()) { callback.TryError(ErrorCode.IsNotLoggedIn); return; } this.name = name; var request = new RegisterLocalServerRequest { ip = ip, port = port, name = name }; string authToken = this.serverSession.AuthorizationToken; this.coroutineRunner.Run(this.api.RegisterLocalServer(request, authToken, callback)); if (this.isHeartBeatAutomatic) { this.heartBeatCoroutine = this.coroutineRunner.Run(RunPeriodicHeartBeat()); } }
public IEnumerator RegisterLocalServer(RegisterLocalServerRequest registerRequest, string accessToken, ResultCallback callback) { Assert.IsNotNull(registerRequest, "Register failed. registerRequest is null!"); Assert.IsNotNull(accessToken, "Can't update a slot! accessToken parameter is null!"); if (this.serverType != ServerType.NONE) { callback.TryError(ErrorCode.Conflict, "Server is already registered."); yield break; } var request = HttpRequestBuilder.CreatePost(this.baseUrl + "/namespaces/{namespace}/servers/local/register") .WithPathParam("namespace", this.namespace_) .WithBearerAuth(accessToken) .WithContentType(MediaType.ApplicationJson) .Accepts(MediaType.ApplicationJson) .WithBody(registerRequest.ToUtf8Json()) .GetResult(); IHttpResponse response = null; yield return(this.httpWorker.SendRequest(request, rsp => response = rsp)); var result = response.TryParse(); serverType = ServerType.LOCALSERVER; callback.Try(result); }
public IEnumerator RegisterLocalServer(uint port, string name, string accessToken, ResultCallback callback) { string ip = ""; AccelByteNetUtilities.GetPublicIp(getPublicIpResult => { ip = getPublicIpResult.Value.ip; }); while (string.IsNullOrEmpty(ip)) { yield return(null); } RegisterLocalServerRequest request = new RegisterLocalServerRequest() { ip = ip, port = port, name = name }; yield return(RegisterLocalServer(request, accessToken, callback)); }