using System;
using System.Collections.Generic;
using System.Security.Claims;
using System.Threading.Tasks;
namespace SocketsSample.Hubs
{
public class Hub
{
public IHubConnectionContext Clients { get; set; }
public HubCallerContext Context { get; set; }
}
public interface IHubConnectionContext
{
IClientProxy All { get; }
IClientProxy Client(string connectionId);
}
public interface IClientProxy
{
///
/// Invokes a method on the connection(s) represented by the instance.
///
/// name of the method to invoke
/// argumetns to pass to the client
/// A task that represents when the data has been sent to the client.
Task Invoke(string method, params object[] args);
}
public class HubCallerContext
{
public HubCallerContext(string connectionId, ClaimsPrincipal user)
{
ConnectionId = connectionId;
User = user;
}
public ClaimsPrincipal User { get; }
public string ConnectionId { get; }
}
}