//public async Task StartBroadcast() //{ // var connectionId = Context.ConnectionId; // var instance = BroadcasterManager.GetInstance(); // if (!instance.IsBroadcaster(connectionId)) // return; // var info = instance.GetConnectionInfo(connectionId); // var roomManager = RoomManager.GetInstance(); // var room = roomManager.GetRoomInfo(info.RoomId); // await room.NotifyStartBroadcast(); //} //public async Task StopBroadcast() //{ // var connectionId = Context.ConnectionId; // var instance = BroadcasterManager.GetInstance(); // if (!instance.IsBroadcaster(connectionId)) // return; // var info = instance.GetConnectionInfo(connectionId); // var roomManager = RoomManager.GetInstance(); // var room = roomManager.GetRoomInfo(info.RoomId); // await room.NotifyStopBroadcast(); //} #endregion #region "Session系" public async Task <AppendSessionResponse> AppendSession(AppendSessionRequest item) { var connectionId = Context.ConnectionId; var instance = BroadcasterManager.GetInstance(); if (!instance.IsBroadcaster(connectionId)) { return new AppendSessionResponse() { IsSuccess = false } } ; var info = instance.GetConnectionInfo(connectionId); var roomManager = RoomManager.GetInstance(); var room = roomManager.GetRoomInfo(info.RoomId); var id = Guid.NewGuid().ToString(); await room.AppendSession(id, item, connectionId, info.Nickname); return(new AppendSessionResponse() { IsSuccess = true, Id = id }); }
public async Task AppendSession(string id, AppendSessionRequest item, string connectionId, string nickName) { if (!this.Sessions.ContainsKey(id)) { var session = new SessionManager() { Id = id, ContentType = item.ContentType, FileName = item.FileName, BroadcasterId = connectionId, BroadcasterName = nickName }; this.Sessions.Add(id, session); var manager = ListenerManager.GetInstance(); var notification = new AppendSessionNotification() { Id = id, ContentType = item.ContentType, FileName = item.FileName, BroadcasterName = nickName }; await Task.Run(() => { IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext <ListenHub>(); hubContext.Clients.Group(this.RoomId).AppendSession(notification); }); } }
//public async Task StartBroadcast() //{ // var connectionId = Context.ConnectionId; // var instance = BroadcasterManager.GetInstance(); // if (!instance.IsBroadcaster(connectionId)) // return; // var info = instance.GetConnectionInfo(connectionId); // var roomManager = RoomManager.GetInstance(); // var room = roomManager.GetRoomInfo(info.RoomId); // await room.NotifyStartBroadcast(); //} //public async Task StopBroadcast() //{ // var connectionId = Context.ConnectionId; // var instance = BroadcasterManager.GetInstance(); // if (!instance.IsBroadcaster(connectionId)) // return; // var info = instance.GetConnectionInfo(connectionId); // var roomManager = RoomManager.GetInstance(); // var room = roomManager.GetRoomInfo(info.RoomId); // await room.NotifyStopBroadcast(); //} #endregion #region "Session系" public async Task<AppendSessionResponse> AppendSession(AppendSessionRequest item) { var connectionId = Context.ConnectionId; var instance = BroadcasterManager.GetInstance(); if (!instance.IsBroadcaster(connectionId)) return new AppendSessionResponse() { IsSuccess = false }; var info = instance.GetConnectionInfo(connectionId); var roomManager = RoomManager.GetInstance(); var room = roomManager.GetRoomInfo(info.RoomId); var id = Guid.NewGuid().ToString(); await room.AppendSession(id, item, connectionId, info.Nickname); return new AppendSessionResponse() { IsSuccess = true, Id = id }; }
public async Task AppendSession(string id, AppendSessionRequest item, string connectionId, string nickName) { if (!this.Sessions.ContainsKey(id)) { var session = new SessionManager() { Id = id, ContentType = item.ContentType, FileName = item.FileName, BroadcasterId = connectionId, BroadcasterName = nickName }; this.Sessions.Add(id, session); var manager = ListenerManager.GetInstance(); var notification = new AppendSessionNotification() { Id = id, ContentType = item.ContentType, FileName = item.FileName, BroadcasterName = nickName }; await Task.Run(() => { IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext<ListenHub>(); hubContext.Clients.Group(this.RoomId).AppendSession(notification); }); } }