视频会议

This commit is contained in:
duoaohui
2026-05-19 09:43:12 +08:00
parent b8c2bf2dc4
commit 6c8572577e
4 changed files with 355 additions and 7 deletions

View File

@@ -59,5 +59,7 @@ func RegisterRoutes(
adminGroup.GET("/meetings/stats", meetingManageCtrl.GetMeetingStats)
adminGroup.GET("/meetings", meetingManageCtrl.GetMeetingList)
adminGroup.GET("/meetings/:id", meetingManageCtrl.GetMeetingDetail)
// 录制兜底操作admin 强制结束):用于 host 失联 / ffmpeg 崩 webhook 失效等场景
adminGroup.POST("/meetings/recordings/:id/force-stop", meetingManageCtrl.ForceStopRecording)
}
}

View File

@@ -84,8 +84,7 @@ func InitializeApp(cfg *config.Config) (*App, error) {
messageManageService := service2.NewMessageManageService(messageManageDAO, userDAO, conversationDAO, pubSub)
messageManageController := controller2.NewMessageManageController(messageManageService)
meetingManageDAO := dao2.NewMeetingManageDAO(gormDB)
meetingManageService := service2.NewMeetingManageService(meetingManageDAO)
meetingManageController := controller2.NewMeetingManageController(meetingManageService)
// admin meetingManageService 依赖 meetingRecordingService强制结束录制兜底延后到 meetingRecordingService 构造后再实例化
serverConfig := provideServerConfig(cfg)
handler := ws.ProvideWSHandler(hub, pubSub, jwtConfig, serverConfig, onlineService, authService)
friendGroupDAO := dao3.NewFriendGroupDAO(gormDB)
@@ -116,6 +115,9 @@ func InitializeApp(cfg *config.Config) (*App, error) {
meetingService := service7.NewMeetingService(meetingRoomDAO, meetingParticipantDAO, meetingChatDAO, gormDB, client, meetingBroadcaster, notifyService, friendshipDAO, onlineService, httpMediaOrchestrator, meetingLifecycleService)
meetingSignalService := service7.NewMeetingSignalService(meetingRoomDAO, meetingParticipantDAO, client, meetingBroadcaster, httpMediaOrchestrator, meetingLifecycleService)
meetingRecordingService := service7.NewMeetingRecordingService(meetingRoomDAO, meetingParticipantDAO, meetingRecordingDAO, client, meetingBroadcaster, httpMediaOrchestrator, minioClient, minioConfig)
// admin 会议管理服务在 recording service 构造后再创建,从而支持"强制结束录制"兜底
meetingManageService := service2.NewMeetingManageService(meetingManageDAO, meetingRecordingService)
meetingManageController := controller2.NewMeetingManageController(meetingManageService)
meetingController := controller7.NewMeetingController(meetingService)
meetingRecordingController := controller7.NewMeetingRecordingController(meetingRecordingService)
meetingWSHandler := controller7.NewMeetingWSHandler(meetingSignalService, hub)