mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-11-03 13:00:52 +08:00
格式 - 按需拉流的事件的类型从`*Stream`修改为`InvitePublish` - 远程拉流频繁重连后导致多路远程流同时写入同一个`track` - 在并发序列化`Tracks`时导致错误,通过加锁解决 - 修复`Record`插件录制`fmp4`格式报错 - 更新`WebRTC`插件依赖库版本 - 更新依赖库`quic-go`版本 - 优化`ps`插件中的`tcp`收流逻辑 - 优化`rtmp`插件streamId计算方法
53 lines
1008 B
Go
53 lines
1008 B
Go
package test
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
// TestPubAndSub 测试发布和订阅
|
|
func TestPubAndSub(t *testing.T) {
|
|
t.Cleanup(FreeEngine)
|
|
UseEngine()
|
|
t.Run("publish", func(t *testing.T) {
|
|
t.Parallel()
|
|
var pub UnitTestPublisher
|
|
unitTestPlugin.Publish("test/001", &pub)
|
|
})
|
|
t.Run("subscribe", func(t *testing.T) {
|
|
t.Parallel()
|
|
var sub UnitTestSubsciber
|
|
sub.tb = t
|
|
err := unitTestPlugin.Subscribe("test/001", &sub)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
} else {
|
|
sub.PlayRaw()
|
|
}
|
|
})
|
|
}
|
|
|
|
func BenchmarkPubAndSub(b *testing.B) {
|
|
b.Cleanup(FreeEngine)
|
|
UseEngine()
|
|
for i := 0; i < 10; i++ {
|
|
i := i
|
|
go func(i int) {
|
|
var pub UnitTestPublisher
|
|
unitTestPlugin.Publish(fmt.Sprintf("testb/%d", i), &pub)
|
|
}(i)
|
|
go b.RunParallel(func(pb *testing.PB) {
|
|
var sub UnitTestSubsciber
|
|
sub.tb = b
|
|
err := unitTestPlugin.Subscribe(fmt.Sprintf("testb/%d", i), &sub)
|
|
if err != nil {
|
|
// b.Fatal(err)
|
|
} else {
|
|
sub.PlayRaw()
|
|
}
|
|
})
|
|
}
|
|
time.Sleep(time.Second * 10)
|
|
}
|