using MediaBrowser.Model.Events; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Net { /// /// Interface IServerManager /// public interface IServerManager : IDisposable { /// /// Starts this instance. /// /// The URL prefixes. /// If an https prefix is specified, /// the ssl certificate localtion on the file system. void Start(IEnumerable urlPrefixes, string certificatePath); /// /// Sends a message to all clients currently connected via a web socket /// /// /// Type of the message. /// The data. /// Task. void SendWebSocketMessage(string messageType, T data); /// /// Sends a message to all clients currently connected via a web socket /// /// /// Type of the message. /// The function that generates the data to send, if there are any connected clients void SendWebSocketMessage(string messageType, Func dataFunction); /// /// Sends a message to all clients currently connected via a web socket /// /// /// Type of the message. /// The function that generates the data to send, if there are any connected clients /// The cancellation token. /// Task. /// messageType Task SendWebSocketMessageAsync(string messageType, Func dataFunction, CancellationToken cancellationToken); /// /// Adds the web socket listeners. /// /// The listeners. void AddWebSocketListeners(IEnumerable listeners); /// /// Gets the web socket connections. /// /// The web socket connections. IEnumerable WebSocketConnections { get; } /// /// Occurs when [web socket connected]. /// event EventHandler> WebSocketConnected; } }