private async Task StartPeriodicallyCheck() { IsPeriodicalCheckRunning = true; await Task.Delay(TimeSpan.FromSeconds(20)); foreach (var activeUser in _webSocketRepository.GetAllActiveUsers()) { var user = Guid.Parse(activeUser.Key); try { //sending ping await WriteAsBinaryToWebSocketAsync( bytes : new byte[0], webSocket : activeUser.Value, type : WebSocketMessageType.Binary); } catch (Exception) { _webSocketRepository.RemoveUser(user); _onlineUserRepository.RemoveUser(user); } } StartPeriodicallyCheck(); }
public IActionResult Index() { return(View((_webSocketRepository.GetAllActiveUsers(), _debugRepository.Errors, _onlineUserRepository.FilePiecesInUsersOnline, _onlineUserRepository.UsersInNetworksOnline))); //return Json((ActiveUsers: _webSocketRepository.GetAllActiveUsers(), Errors: _debugRepository.Errors)); }