public async void GetUpdateForItem(int itemNo) { Response.ContentType = "text/event-stream"; var item = new Item(); item.Id = itemNo; UpdateInfo result; do { result = _stateChecker.GetUpdate(item); Thread.Sleep(3000); if (!result.New) { continue; } await HttpContext.Response.WriteAsync("event: message\n"); await HttpContext.Response.WriteAsync("data:" + result.Update + "\n\n"); await HttpContext.Response.Body.FlushAsync(); } while (!result.Finished); Response.Body.Close(); }
public IActionResult GetUpdateForItem(int itemNo) { var item = new Item(); item.Id = itemNo; var result = _stateChecker.GetUpdate(item); if (result.New) { return(new ObjectResult(result)); } return(NoContent()); }
public async Task GetUpdateForItem(int itemNo) { var item = new Item(); item.Id = itemNo; UpdateInfo result; do { result = _stateChecker.GetUpdate(item); Thread.Sleep(1000); if (result.New) { await Clients.Caller.SendAsync("ReceiveItemUpdate", result.Update); } } while (!result.Finished); await Clients.Caller.SendAsync("Finished"); }
private async Task SendEvents(WebSocket webSocket, Item item) { UpdateInfo result; do { result = _stateChecker.GetUpdate(item); Thread.Sleep(2000); if (result.New) { var jsonMessage = $"\"{result.Update}\""; await webSocket.SendAsync(buffer : new ArraySegment <byte>( array: Encoding.ASCII.GetBytes(jsonMessage), offset: 0, count: jsonMessage.Length), messageType : WebSocketMessageType.Text, endOfMessage : true, cancellationToken : CancellationToken.None); } } while (!result.Finished); }
public IActionResult GetUpdateForItem(int itemNo) { var item = new Item(); item.Id = itemNo; UpdateInfo result; int i = 0; do { result = _stateChecker.GetUpdate(item); Thread.Sleep(3000); i++; } while (!result.New && i < 3); if (result.New) { return(new ObjectResult(result)); } return(NoContent()); }