live-sfu-demo/internal/server/grpc.go

42 lines
1.2 KiB
Go

package server
import (
"context"
"gospeak-live-sfu-demo/gen"
)
// grpcServer 把 Service 适配为 protobuf 生成的 gRPC 服务端接口。
type grpcServer struct {
gen.UnimplementedLiveSFUServer
svc *Service
}
func NewGRPCServer(svc *Service) *grpcServer {
return &grpcServer{svc: svc}
}
func (g *grpcServer) GetConfig(ctx context.Context, req *gen.GetConfigRequest) (*gen.GetConfigResponse, error) {
return g.svc.GetConfig(ctx, req)
}
func (g *grpcServer) ListRooms(ctx context.Context, req *gen.ListRoomsRequest) (*gen.ListRoomsResponse, error) {
return g.svc.ListRooms(ctx, req)
}
func (g *grpcServer) Publish(ctx context.Context, req *gen.PublishRequest) (*gen.PublishResponse, error) {
return g.svc.Publish(ctx, req)
}
func (g *grpcServer) Subscribe(ctx context.Context, req *gen.SubscribeRequest) (*gen.SubscribeResponse, error) {
return g.svc.Subscribe(ctx, req)
}
func (g *grpcServer) StopStream(ctx context.Context, req *gen.StopStreamRequest) (*gen.StopStreamResponse, error) {
return g.svc.StopStream(ctx, req)
}
func (g *grpcServer) WatchRoom(req *gen.WatchRoomRequest, stream gen.LiveSFU_WatchRoomServer) error {
return g.svc.WatchRoom(req, stream)
}