void OnApplicationPause(bool paused) { if (this._pauseState == paused) { return; } this._pauseState = paused; if (paused) { this._executionQueue.Clear(); this._delayCalls.Clear(); this._delayCallId = 0; SocketApi.OnApplicationFocus(false); } else { if (!this._resumePending) { this._resumePending = true; this.Invoke(nameof(this.TryOnApplicationResumed), resumePendingDuration); } } }
public static void clearCookie() { PlayerPrefs.SetString(COOKIE, ""); PlayerPrefs.Save(); SocketApi.OnCookieChanged(); }
void TryOnApplicationResumed() { this._resumePending = false; if (this._pauseState == false) { SocketApi.OnApplicationFocus(true); } }
private void StartTrades(object sender, RoutedEventArgs e) { outDg.ItemsSource = tradesDataSource; SocketApi.StartTrades(GetPair(), (wsTrade) => { tradesDataSource.Add(wsTrade); outDg.Items.Refresh(); }); gbox.Header = SocketApi.LastUrl; ToggleStartButtons(false); }
private void StartKline(object sender, RoutedEventArgs e) { outDg.ItemsSource = klineDataSource; SocketApi.StartKline(GetPair(), KlineInterval.Minutes1, (wsKline) => { klineDataSource.Add(wsKline); outDg.Items.Refresh(); }); gbox.Header = SocketApi.LastUrl; ToggleStartButtons(false); }
private void StartDepth(object sender, RoutedEventArgs e) { outDg.ItemsSource = depthDataSource; SocketApi.StartDepth(GetPair(), (wsDepth) => { var items = DepthViewItem.BuildFromDepth(wsDepth); depthDataSource.AddRange(items); outDg.Items.Refresh(); outDg.ScrollIntoView(outDg.Items[outDg.Items.Count - 1]); }); gbox.Header = SocketApi.LastUrl; ToggleStartButtons(false); }
public static void Connect( string url, GetCurrentChannelId getCurrentChannelId, GetLoginSession getLoginSession, bool isDebug = false ) { SocketApi.FetchSocketUrl() .Then(socketUrl => { // _webSocket = new WebSocket(new Uri($"{socketUrl}/v1")); // _webSocket.OnOpen += OnWebSocketOpen; // _webSocket.OnMessage += OnMessageReceived; // _webSocket.OnIncompleteFrame += OnIncompleteFrame; // _webSocket.Open(); }); }
void Start() { if (_singletonChecker) { DebugerUtils.DebugAssert(false, "fatal error! Cannot initialize two WebSocketHost!"); return; } _singletonChecker = true; this._socketGateway = new SocketGateway(this); this.m_InternetState = NetworkReachability.NotReachable; SocketApi.ResetState(); }
public static void updateCookie(string newCookie) { var cookie = PlayerPrefs.GetString(COOKIE); var cookieDict = new Dictionary <string, string>(); var updateCookie = ""; if (cookie.isNotEmpty()) { var cookieArr = cookie.Split(';'); foreach (var c in cookieArr) { var name = c.Split('=').first(); cookieDict.Add(name, c); } } if (newCookie.isNotEmpty()) { var newCookieArr = newCookie.Split(','); foreach (var c in newCookieArr) { var item = c.Split(';').first(); var name = item.Split('=').first(); if (cookieDict.ContainsKey(name)) { cookieDict[name] = item; } else { cookieDict.Add(name, item); } } var updateCookieArr = cookieDict.Values; updateCookie = string.Join(";", updateCookieArr); } if (updateCookie.isNotEmpty()) { PlayerPrefs.SetString(COOKIE, updateCookie); PlayerPrefs.Save(); SocketApi.OnCookieChanged(); } }
public void Update() { using (WindowProvider.of(context: GlobalContext.context).getScope()) { lock (this._executionQueue) { while (this._executionQueue.Count > 0) { this._executionQueue.Dequeue().Invoke(); } } var delta = Time.deltaTime; while (this._delayCalls.Count > 0) { var call = this._delayCalls[0]; var delay = call.remainInterval; if (delay > delta) { call.remainInterval -= delta; break; } delta -= call.remainInterval; var callback = call.callback; this._delayCalls.RemoveAt(0); callback?.Invoke(); } if (Application.internetReachability != this.m_InternetState) { this.m_InternetState = Application.internetReachability; //force reconnect if the connection state changes to online if (this.m_InternetState == NetworkReachability.ReachableViaCarrierDataNetwork || this.m_InternetState == NetworkReachability.ReachableViaLocalAreaNetwork) { SocketApi.OnNetworkConnected(); } else { SocketApi.OnNetworkDisconnected(); } } } }
private void StopWs(object sender, RoutedEventArgs e) { SocketApi.Stop(); UserStreamApi.Stop(); ToggleStartButtons(true); }
static int Main(string[] args) { var processA = Process.Start("ztserver.exe", "-h 8080"); var processB = Process.Start("ztserver.exe", "-h 8081 -z 9996"); Thread.Sleep(3000); var clientSocketA = new SocketApi("http://localhost:8080"); var clientSocketB = new SocketApi("http://localhost:8081"); var clientNetworkA = new NetworkApi("http://localhost:8080"); var clientNetworkB = new NetworkApi("http://localhost:8081"); Console.WriteLine("Joining networks..."); clientNetworkA.Join(new IO.Swagger.Model.ZeroTierJoinRequest { Nwid = "8bd5124fd6206336", Path = "ztidentityA", }); clientNetworkB.Join(new IO.Swagger.Model.ZeroTierJoinRequest { Nwid = "8bd5124fd6206336", Path = "ztidentityB", }); Console.WriteLine("Creating local UDP ports..."); var udpClientA = new UdpClient(0, AddressFamily.InterNetwork); var udpClientB = new UdpClient(0, AddressFamily.InterNetwork); var portA = ((IPEndPoint)udpClientA.Client.LocalEndPoint).Port; var portB = ((IPEndPoint)udpClientB.Client.LocalEndPoint).Port; Console.WriteLine("Forwarding ports..."); var forwardA = clientSocketA.Forward(new IO.Swagger.Model.ZeroTierForwardRequest(portA)); var forwardB = clientSocketB.Forward(new IO.Swagger.Model.ZeroTierForwardRequest(portB)); try { Console.WriteLine("Retrieving address information..."); var infoA = clientNetworkA.GetInfo(); var infoB = clientNetworkB.GetInfo(); Console.WriteLine("Sending packet from client A to client B..."); var helloWorld = "Hello World"; var msg = new List <byte>(); msg.Add(0); msg.AddRange(IPAddress.Parse(infoB.Addresses.First(x => x.Contains("."))).GetAddressBytes()); msg.AddRange(BitConverter.GetBytes((ushort)forwardB.Zt4port.Value).Reverse() /* endian switch LE -> NBO */); msg.AddRange(Encoding.ASCII.GetBytes(helloWorld)); var msgBytes = msg.ToArray(); udpClientA.Send(msgBytes, msgBytes.Length, new IPEndPoint(IPAddress.Loopback, forwardA.Proxyport.Value)); Console.WriteLine("Trying to receive a packet on client B from client A..."); IPEndPoint r = new IPEndPoint(IPAddress.Loopback, 0); var recvMsg = udpClientB.Receive(ref r); if (recvMsg == null) { Console.WriteLine("Failed to receive message!"); return(1); } if (recvMsg.Length < 10) { Console.WriteLine("Received message was unexpected length."); return(1); } if (recvMsg[0] == 1) { Console.WriteLine("Message didn't have IPv4 header"); return(1); } var recvAddr = new IPAddress(new[] { recvMsg[1], recvMsg[2], recvMsg[3], recvMsg[4], }); var recvPort = BitConverter.ToUInt16(new[] { recvMsg[6], recvMsg[5], }, 0); var clientAAddress = IPAddress.Parse(infoA.Addresses.First(x => x.Contains("."))); if (!recvAddr.Equals(clientAAddress)) { Console.WriteLine("Message didn't arrive from client A IP address"); return(1); } if (recvPort != (ushort)forwardA.Zt4port.Value) { Console.WriteLine("Message didn't arrive from expected port"); return(1); } Console.WriteLine("TEST PASS - Received message over ZT between two clients!"); return(0); } finally { Console.WriteLine("Unforwarding ports..."); clientSocketA.Unforward(new IO.Swagger.Model.ZeroTierUnforwardRequest { Proxyport = forwardA.Proxyport }); clientSocketB.Unforward(new IO.Swagger.Model.ZeroTierUnforwardRequest { Proxyport = forwardB.Proxyport }); Console.WriteLine("Leaving networks..."); clientNetworkA.Leave(new IO.Swagger.Model.ZeroTierLeaveRequest()); clientNetworkB.Leave(new IO.Swagger.Model.ZeroTierLeaveRequest()); processA.Kill(); processB.Kill(); } }