public async Task OnTick(DateTime now) { var server = new ServerContract { Id = _stage.ID, Host = _stage.Info.Host, Port = _stage.Info.Port }; var metadata = new Dictionary <string, string>(); _stage.Info.AddMetadata(metadata); server.Metadata.Add("Type", Enum.GetName(_stage.Type)); server.Metadata.Add(metadata); if (_isInitialized && !_isDisconnected) { if ((await _stage.ServerRegistry .Update(new UpdateServerRequest { Server = server })) .Result != ServerRegistryResult.Ok) { _isDisconnected = true; } else { return; } } var response = await _stage.ServerRegistry.Register(new RegisterServerRequest { Server = server }); if (response.Result == ServerRegistryResult.Ok) { _isInitialized = true; _isDisconnected = false; _stage.Logger.LogInformation($"Successfully registered server {_stage.ID} to the server registry"); } else { _stage.Logger.LogInformation($"Failed to register server {_stage.ID} to the server registry due to {response.Result}"); } }
public void Start(ChatSettings serverSettings) { Settings = serverSettings; NetTcpBinding myBinding = new NetTcpBinding() { MaxReceivedMessageSize = 1048576, MaxBufferPoolSize = 1048576, MaxBufferSize = 1048576, Security = new NetTcpSecurity { Mode = SecurityMode.None } }; host = new ServiceHost(typeof(UserContract)); host.AddServiceEndpoint(typeof(IServerContract), myBinding, $"net.tcp://{Settings.Connection.Ip}:{Settings.Connection.Port}/AngelsChat/"); host.Open(); server = new ServerContract(); }
void Publish() { // Create the Instance of the Service Class. serverContract = new ServerContract(); // Create the Service Host using the INSTANCE I just created. WCF.Server.ServerHost <WCF.Contracts.ServerContract> WCFServerHost = new WCF.Server.ServerHost <WCF.Contracts.ServerContract>(serverContract, baseAddress); // I am using NetTcpBinding in case someone would like to know. // Get the Singleton Instance [InstanceMode.Singleton Pattern] PublishService = (ServerContract)WCF_Server.SingletonInstance; List <products> productList = new List <products>(new Product(), new Product()); System.ServiceModel.Channels.CommunicationObject comm = WCF_Server; if (comm.State == CommunicationState.Opened) { PublishService.PushProductsToClients(productList); } }
public async Task <bool> MigrateTo(ServerContract server) { if (server == null) { return(false); } var request = await Stage.MigrationRegistry.Register(new RegisterMigrationRequest { Migration = new MigrationContract { Character = Character.ID, ClientKey = Key, ServerFrom = Stage.ID, ServerTo = server.Id } }); if (request.Result != MigrationRegistryResult.Ok) { return(false); } IsMigrating = true; var session = new SessionContract { Account = Account.ID, Character = Character.ID, Server = Stage.ID, State = SessionState.Migrating }; await Stage.SessionRegistry.Update(new UpdateSessionRequest { Session = session }); var endpoint = new IPEndPoint(IPAddress.Parse(server.Host), server.Port); var address = endpoint.Address.MapToIPv4().GetAddressBytes(); var port = endpoint.Port; await Update(); await Dispatch(GetMigratePacket(address, (short)port)); return(true); }
public async Task <HttpResponseMessage> GetTicketAsync(string ticketId, string expectedFacadeResult) { HttpResponseMessage response; try { ServerContract.RequireNotNullOrWhitespace(nameof(ticketId), ticketId); ServerContract.RequireNotNullOrWhitespace(nameof(expectedFacadeResult), expectedFacadeResult); try { var ticket = ToContract(await TicketLogic.GetTicketAsync(ticketId, ExpectedResultFromContract(expectedFacadeResult))); var json = JObject.FromObject(ticket); response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(json.ToString(Formatting.Indented), Encoding.UTF8, "application/json") }; } catch (Exception e) { var fulcrumException = e as FulcrumException; if (fulcrumException != null) { e = Converter.FromBllToServer(fulcrumException); } response = Converter.ToHttpResponseMessage(e, true); } } catch (Exception e) { response = Converter.ToHttpResponseMessage(e, true); } return(response); }
public override bool CanHandleServerMessage(ServerContract serverContract) { return serverContract.Type == GamifyServerMessageType.GameInviteReceived || serverContract.Type == GamifyServerMessageType.GameCreated || serverContract.Type == GamifyServerMessageType.GameRejected; }
/// <summary> /// Window Load /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Main_Load(object sender, EventArgs e) { contractMgmt = new ServerContract(this); AsyncStartListen(); }