public HighPerformanceServerStrategy(int localPort) : base(localPort) { Role = TcpRole.Client; MultipleClients = true; endPointFactory = new EndPointFactory(localPort); communicants.Add(ComputerInfo.Current.PerformanceIndex, endPointFactory.Create(IPAddress.Loopback)); }
public void BindIfNecessary(IPAddress localIPAddress) { internalSemaphore.Wait(); if (!closed && !bindedAddresses.TryGetValue(localIPAddress, out bool value)) { client.Client.Bind(endPointFactory.Create(localIPAddress)); bindedAddresses.Add(localIPAddress, true); } internalSemaphore.Release(); }
private void AddConnectableClient(string clientDescription, Action <string> onSuccessAction) { string[] tokens = clientDescription.Split('@'); if (tokens.Length != 2 || !IPAddress.TryParse(tokens[1], out IPAddress ipAddress)) { throw new FormatException("Invalid format of connectable client."); } ConnectableClients = ConnectableClients.Add(tokens[0], remoteEndPointFactory.Create(ipAddress)); onSuccessAction?.Invoke(tokens[0]); }
public override void Connect() { State = SubSystemState.Connected; string portraitId = EB.Dot.String("portraitId", Hub.Instance.DataStore.LoginDataStore.LoginData, ""); if (portraitId != "") { SetPortrait(Hub.Instance.DataStore.LoginDataStore.LocalUserId.Value, portraitId, PortraitPriority.High); } EB.Sparx.Config config = SparxHub.Instance.Config; EndPointOptions options = new EndPointOptions { Key = config.ApiKey.Value }; Hashtable social = EB.Dot.Object("social", Hub.Instance.DataStore.LoginDataStore.LoginData, null); if (null == social) { return; } string endpointUrl = EB.Dot.String("endpoint", social, null); _imageBaseUrl = EB.Dot.String("imageBase", social, null);; _socialEndPoint = EndPointFactory.Create(endpointUrl, options); _socialEndPoint.AddData("stoken", Hub.Instance.ApiEndPoint.GetData("stoken")); _api.SetSocialEndpoint(_socialEndPoint); _allowPullFriendsPortraitInfoUntil = new DateTimeRef(System.DateTime.Now); _allowPullAdHocPortraitInfoUntil = new DateTimeRef(System.DateTime.Now); UpdateUniqueTimestamp(); GetFriendsPortraitInfo(null); Hub.Instance.GetManager <PushManager>().OnDisconnected += OnPushDisconnected; }
void Initialize(Config config) { Config = config; DataStore = new DataStore(); BugReport.Init(config.ApiEndpoint + "/bugs"); Assets.LoadAsync("profanity", typeof(TextAsset), o => { TextAsset profanity = o as TextAsset; if (profanity != null) { ProfanityFilter.Init(profanity.text); Assets.Unload("profanity"); } }); var options = new EndPointOptions { Key = config.ApiKey.Value }; if (config.ApiKeepAlive > 0) { options.KeepAlive = true; options.KeepAliveUrl = "/util/ping"; options.KeepAliveInterval = config.ApiKeepAlive; } ApiEndPoint = EndPointFactory.Create(config.ApiEndpoint, options); EB.Memory.OnBreach += delegate() { FatalError("ID_SPARX_ERROR_UNKNOWN"); }; InitializeComponents(); }
public EndPoint CreateEndPoint() { return(EndPointFactory.Create(EndPoint, new EndPointOptions { Key = Encoding.GetBytes(Token), Protocol = "io.sparx.master-client", ActivityTimeout = 30 * 1000 })); }