feat(call): integrate call handling and WebSocket support
All checks were successful
Build Backend / build (push) Successful in 13m26s
Build Backend / build-docker (push) Successful in 1m22s

- Added CallHandler and related services for managing call sessions and participants.
- Enhanced WSHandler to support call signaling, including invite, answer, reject, and end functionalities.
- Updated router to include call-related routes for history and ICE server retrieval.
- Introduced WebRTC configuration in the application settings for call management.
- Refactored wire generation to include CallService and CallRepository for improved dependency injection.
This commit is contained in:
lafay
2026-03-27 01:54:34 +08:00
parent 9ecb29225a
commit 7e6a65d29d
16 changed files with 1002 additions and 7 deletions

View File

@@ -27,6 +27,7 @@ var HandlerSet = wire.NewSet(
handler.NewAdminLogHandler,
handler.NewQRCodeHandler,
handler.NewMaterialHandler,
handler.NewCallHandler,
// 需要特殊处理的 Handler
ProvideUserHandler,
@@ -126,6 +127,7 @@ func ProvideWSHandler(
chatService service.ChatService,
groupService service.GroupService,
jwtService *service.JWTService,
callService service.CallService,
) *handler.WSHandler {
return handler.NewWSHandler(wsHub, chatService, groupService, jwtService)
return handler.NewWSHandler(wsHub, chatService, groupService, jwtService, callService)
}

View File

@@ -26,6 +26,7 @@ var RepositorySet = wire.NewSet(
repository.NewScheduleRepository,
repository.NewMaterialSubjectRepository,
repository.NewMaterialFileRepository,
repository.NewCallRepository,
ProvideUserActivityRepository,
// 日志相关仓储

View File

@@ -55,6 +55,7 @@ var ServiceSet = wire.NewSet(
ProvideQRCodeLoginService,
ProvideHotRankWorker,
ProvideMaterialService,
ProvideCallService,
// 日志服务
ProvideAsyncLogManager,
@@ -380,3 +381,12 @@ func ProvideMaterialService(
func parseDuration(s string) (time.Duration, error) {
return time.ParseDuration(s)
}
// ProvideCallService 提供通话服务
func ProvideCallService(
callRepo repository.CallRepository,
wsHub *ws.Hub,
cfg *config.Config,
) service.CallService {
return service.NewCallService(callRepo, wsHub, cfg)
}