@page "/hub"

Hub

@using System.Collections @using Microsoft.AspNetCore.SignalR.Client @using Squirrowse.Core.Models @using Squirrowse.Core.Services @inject IConnectionManager _connection; @**@
@if (agents != null && agents.Any()) { @foreach (var agent in agents) {

@agent.AgentName -> @agent.UserType.ToString()

} } @*

@agents.AgentName -> @agents.UserType.ToString()

*@ else {

No Cams

}
@code{ private List agents; HubConnection connection; string imageSource = null; string CurrentViewCastAgent = null; protected override async Task OnInitializedAsync() { agents=new List(); await _connection.InitConnection(ConnectionType.Server); connection = await _connection.GetConnection(); connection.On>("RecData", OnStreamDataReceived); //agents = await connection.InvokeAsync("GetListOfTypeUserString"); //agents = await connection.InvokeAsync("Getasuser"); //agents = await connection.InvokeAsync>("GetListOfTypeUserAsync",ConnectionType.Client); await foreach (var dupa in connection.StreamAsync("GetListOfTypeUserAsync", ConnectionType.Client)) { agents.Add(dupa); this.StateHasChanged(); } //connection.On("NewUser", NewUser); //connection.On("RemoveScreenCastAgent", RemoveScreenCastAgent); //connection.On("OnStreamDataReceived", OnStreamDataReceived); //await connection.StartAsync(); } bool IsViewingCastOf(string agentName) { return agentName == CurrentViewCastAgent; } //void NewUser(User agentName) //{ // agents.Add(agentName); // StateHasChanged(); //} async void OnStreamDataReceived(IAsyncEnumerable streamData) { await foreach (var t in streamData) { var base64 = Convert.ToBase64String(t); imageSource = String.Format("data:image/jpg;base64,{0}", base64); StateHasChanged(); } } private async Task OnViewCastClicked(string agentName) { CurrentViewCastAgent = agentName; await connection.InvokeAsync("Startstream", agentName); StateHasChanged(); } private async Task OnStopViewCastClicked(string agentName) { CurrentViewCastAgent = null; await connection.InvokeAsync("Stopstream", agentName); imageSource = null; StateHasChanged(); } }