Есть ли лучший способ вызывать методы на стороне клиента или более общий c, так как я продолжаю регистрировать больше, что усложняет управление.
Это код клиента Signal R, в котором показаны три обработчика. Можно ли сделать это одним? Клиент SignalR
public readonly HubConnection Conn;
public event Action NotifyTeachers;
public event Action NotifyStudents;
public event Action NotifyBusess;
public List<Teachers> Teachers { get; private set; }
public List<Studnets> Students { get; private set; }
public List<Buses> Bueses { get; private set; }
public Connection()
{
//Set new connection...
Conn.On<List<Teachers>>("UpdateTeachers", teachers =>
{
Teachers = teachers;
NotifyTeachers?.Invoke();
});
Conn.On<List<Students>>("UpdateStudents", students =>
{
Students = students;
NotifyStudents?.Invoke();
});
Conn.On<List<Buses>>("UpdateBuses", buses =>
{
Bueses = buses;
NotifyBusess?.Invoke();
});
}
На сервере мы вызываем методы клиента, как показано ниже.
BroadCastService
public async Task UpdatePlan()
{
//Gets the latest list
await Hub.Clients.All.SendAsync("UpdateTeachers", GetAllTeachers());
...
}
public async Task UpdatePlan()
{
//Gets the latest list
await Hub.Clients.All.SendAsync("UpdateStudents", GetAllStudents());
...
}
public async Task UpdatePlan()
{
//Gets the latest list
await Hub.Clients.All.SendAsync("UpdateBuses", GetAllBuses());
...
}