mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-09-26 23:05:55 +08:00
fix: range remove
This commit is contained in:
1
alias.go
1
alias.go
@@ -92,6 +92,7 @@ func (s *Server) SetStreamAlias(ctx context.Context, req *pb.SetStreamAliasReque
|
||||
aliasInfo.TransferSubscribers(publisher) // replace stream
|
||||
aliasInfo.Publisher = publisher
|
||||
} else {
|
||||
aliasInfo.Publisher = publisher
|
||||
s.Waiting.WakeUp(req.Alias, publisher)
|
||||
}
|
||||
}
|
||||
|
@@ -15,7 +15,7 @@ func TestTsTamer_Tame(t *testing.T) {
|
||||
|
||||
tr := &TsTamer{}
|
||||
for i, tt := range tss {
|
||||
if gotResult := tr.Tame(tt*time.Millisecond, 100); gotResult != wants[i]*time.Millisecond {
|
||||
if gotResult := tr.Tame(tt*time.Millisecond, 100, 1.0); gotResult != wants[i]*time.Millisecond {
|
||||
t.Errorf("TsTamer.Tame() = %v, want %v", gotResult, wants[i]*time.Millisecond)
|
||||
}
|
||||
}
|
||||
|
@@ -15,10 +15,8 @@ func (n *Class) GetKey() string {
|
||||
return n.name
|
||||
}
|
||||
|
||||
var cc Collection[string, *Class]
|
||||
|
||||
func TestCollection(t *testing.T) {
|
||||
|
||||
var cc Collection[string, *Class]
|
||||
for i := 0; i < 10; i++ {
|
||||
cc.Add(&Class{name: fmt.Sprintf("%d", i), Id: i})
|
||||
}
|
||||
@@ -30,6 +28,17 @@ func TestCollection(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCollection_Range(t *testing.T) {
|
||||
var cc Collection[string, *Class]
|
||||
for i := 0; i < 10; i++ {
|
||||
cc.Add(&Class{name: fmt.Sprintf("%d", i), Id: i})
|
||||
}
|
||||
for item := range cc.Range {
|
||||
fmt.Println(item)
|
||||
cc.Remove(item)
|
||||
}
|
||||
}
|
||||
|
||||
// TestItem 是用于测试的结构体
|
||||
type TestItem struct {
|
||||
ID string
|
||||
|
@@ -635,13 +635,15 @@ func (p *Publisher) Dispose() {
|
||||
|
||||
func (p *Publisher) TransferSubscribers(newPublisher *Publisher) {
|
||||
p.Info("transfer subscribers", "newPublisher", newPublisher.ID, "newStreamPath", newPublisher.StreamPath)
|
||||
var remain SubscriberCollection
|
||||
for subscriber := range p.SubscriberRange {
|
||||
if subscriber.Type != SubscribeTypeServer {
|
||||
continue
|
||||
}
|
||||
remain.Add(subscriber)
|
||||
} else {
|
||||
newPublisher.AddSubscriber(subscriber)
|
||||
p.Subscribers.Remove(subscriber)
|
||||
}
|
||||
}
|
||||
p.Subscribers = remain
|
||||
p.BufferTime = p.Plugin.GetCommonConf().Publish.BufferTime
|
||||
p.AudioTrack.SetMinBuffer(p.BufferTime)
|
||||
p.VideoTrack.SetMinBuffer(p.BufferTime)
|
||||
|
Reference in New Issue
Block a user