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.TransferSubscribers(publisher) // replace stream
|
||||||
aliasInfo.Publisher = publisher
|
aliasInfo.Publisher = publisher
|
||||||
} else {
|
} else {
|
||||||
|
aliasInfo.Publisher = publisher
|
||||||
s.Waiting.WakeUp(req.Alias, publisher)
|
s.Waiting.WakeUp(req.Alias, publisher)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -15,7 +15,7 @@ func TestTsTamer_Tame(t *testing.T) {
|
|||||||
|
|
||||||
tr := &TsTamer{}
|
tr := &TsTamer{}
|
||||||
for i, tt := range tss {
|
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)
|
t.Errorf("TsTamer.Tame() = %v, want %v", gotResult, wants[i]*time.Millisecond)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -15,10 +15,8 @@ func (n *Class) GetKey() string {
|
|||||||
return n.name
|
return n.name
|
||||||
}
|
}
|
||||||
|
|
||||||
var cc Collection[string, *Class]
|
|
||||||
|
|
||||||
func TestCollection(t *testing.T) {
|
func TestCollection(t *testing.T) {
|
||||||
|
var cc Collection[string, *Class]
|
||||||
for i := 0; i < 10; i++ {
|
for i := 0; i < 10; i++ {
|
||||||
cc.Add(&Class{name: fmt.Sprintf("%d", i), Id: 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 是用于测试的结构体
|
// TestItem 是用于测试的结构体
|
||||||
type TestItem struct {
|
type TestItem struct {
|
||||||
ID string
|
ID string
|
||||||
|
@@ -635,13 +635,15 @@ func (p *Publisher) Dispose() {
|
|||||||
|
|
||||||
func (p *Publisher) TransferSubscribers(newPublisher *Publisher) {
|
func (p *Publisher) TransferSubscribers(newPublisher *Publisher) {
|
||||||
p.Info("transfer subscribers", "newPublisher", newPublisher.ID, "newStreamPath", newPublisher.StreamPath)
|
p.Info("transfer subscribers", "newPublisher", newPublisher.ID, "newStreamPath", newPublisher.StreamPath)
|
||||||
|
var remain SubscriberCollection
|
||||||
for subscriber := range p.SubscriberRange {
|
for subscriber := range p.SubscriberRange {
|
||||||
if subscriber.Type != SubscribeTypeServer {
|
if subscriber.Type != SubscribeTypeServer {
|
||||||
continue
|
remain.Add(subscriber)
|
||||||
|
} else {
|
||||||
|
newPublisher.AddSubscriber(subscriber)
|
||||||
}
|
}
|
||||||
newPublisher.AddSubscriber(subscriber)
|
|
||||||
p.Subscribers.Remove(subscriber)
|
|
||||||
}
|
}
|
||||||
|
p.Subscribers = remain
|
||||||
p.BufferTime = p.Plugin.GetCommonConf().Publish.BufferTime
|
p.BufferTime = p.Plugin.GetCommonConf().Publish.BufferTime
|
||||||
p.AudioTrack.SetMinBuffer(p.BufferTime)
|
p.AudioTrack.SetMinBuffer(p.BufferTime)
|
||||||
p.VideoTrack.SetMinBuffer(p.BufferTime)
|
p.VideoTrack.SetMinBuffer(p.BufferTime)
|
||||||
|
Reference in New Issue
Block a user