Documentation
¶
Index ¶
- Constants
- type IWebrtcPeer
- type PionPeer
- func (this *PionPeer) Connected() bool
- func (this *PionPeer) Create(targetPeerId string, initiator bool, options *webrtc2.WebrtcOption, ...)
- func (this *PionPeer) Destroy(err error)
- func (this *PionPeer) EmitEvent(name string, event *PoolEvent) (interface{}, error)
- func (this *PionPeer) Id() string
- func (this *PionPeer) RegistEvent(name string, fn func(event *PoolEvent) (interface{}, error))
- func (this *PionPeer) Send(data []byte) error
- func (this *PionPeer) SendText(message string) error
- func (this *PionPeer) Signal(webrtcSignal *simplepeer.WebrtcSignal)
- func (this *PionPeer) UnregistEvent(name string) bool
- type PoolEvent
- type Sfu
- type SfuPool
- type WebrtcPeerPool
- func (this *WebrtcPeerPool) EmitEvent(name string, event *PoolEvent) (interface{}, error)
- func (this *WebrtcPeerPool) Receive(netPeer *p2p.NetPeer, payload map[string]interface{})
- func (this *WebrtcPeerPool) RegistEvent(name string, fn func(event *PoolEvent) (interface{}, error))
- func (this *WebrtcPeerPool) UnregistEvent(name string) bool
- type WebrtcSimplePeer
- func (this *WebrtcSimplePeer) AddTrack(track webrtc.TrackLocal) (*webrtc.RTPSender, error)
- func (this *WebrtcSimplePeer) Connected() bool
- func (this *WebrtcSimplePeer) Create(targetPeerId string, iceServer []webrtc.ICEServer, initiator bool, ...)
- func (this *WebrtcSimplePeer) CreateTrack(c *webrtc.RTPCodecCapability, trackId string, streamId string) (webrtc.TrackLocal, error)
- func (this *WebrtcSimplePeer) Destroy(err error)
- func (this *WebrtcSimplePeer) EmitEvent(name string, event *PoolEvent) (interface{}, error)
- func (this *WebrtcSimplePeer) GetPeer() *p2p.NetPeer
- func (this *WebrtcSimplePeer) GetSenders(streamId string) []*webrtc.RTPSender
- func (this *WebrtcSimplePeer) GetTrackRemotes(streamId string) []*webrtc.TrackRemote
- func (this *WebrtcSimplePeer) Id() string
- func (this *WebrtcSimplePeer) ReadRTP(track *webrtc.TrackRemote) (*rtp.Packet, error)
- func (this *WebrtcSimplePeer) RegistEvent(name string, fn func(event *PoolEvent) (interface{}, error)) bool
- func (this *WebrtcSimplePeer) Router() *simplepeer.Router
- func (this *WebrtcSimplePeer) Send(data []byte) error
- func (this *WebrtcSimplePeer) SendText(data string) error
- func (this *WebrtcSimplePeer) SetPeer(connectPeerId string, connectSessionId string, peerType string)
- func (this *WebrtcSimplePeer) Signal(webrtcSignal *simplepeer.WebrtcSignal)
- func (this *WebrtcSimplePeer) UnregistEvent(name string) bool
- func (this *WebrtcSimplePeer) WriteRTP(sender *webrtc.RTPSender, packet *rtp.Packet) error
Constants ¶
View Source
const ( RouterType_Mesh = "mesh" RouterType_Sfu = "sfu" RouterType_Mcu = "mcu" RouterIdentity_Publisher = "publisher" RouterIdentity_Subscriber = "subscriber" RouterIdentity_PubSub = "pubsub" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IWebrtcPeer ¶
type IWebrtcPeer interface { Id() string RegistEvent(name string, fn func(event *PoolEvent) (interface{}, error)) bool UnregistEvent(name string) bool EmitEvent(name string, event *PoolEvent) (interface{}, error) Create(targetPeerId string, iceServer []webrtc.ICEServer, initiator bool, options *webrtc2.WebrtcOption, router *simplepeer.Router) Router() *simplepeer.Router Signal(webrtcSignal *simplepeer.WebrtcSignal) Connected() bool GetPeer() *p2p.NetPeer SetPeer(connectPeerId string, connectSessionId string, peerType string) Send(data []byte) error SendText(data string) error Destroy(err error) ReadRTP(track *webrtc.TrackRemote) (*rtp.Packet, error) WriteRTP(sender *webrtc.RTPSender, packet *rtp.Packet) error CreateTrack(c *webrtc.RTPCodecCapability, trackId string, streamId string) (webrtc.TrackLocal, error) AddTrack(track webrtc.TrackLocal) (*webrtc.RTPSender, error) GetSenders(streamId string) []*webrtc.RTPSender GetTrackRemotes(streamId string) []*webrtc.TrackRemote }
type PionPeer ¶
func (*PionPeer) Create ¶
func (this *PionPeer) Create(targetPeerId string, initiator bool, options *webrtc2.WebrtcOption, iceServer []webrtc.ICEServer)
func (*PionPeer) RegistEvent ¶
func (*PionPeer) Signal ¶
func (this *PionPeer) Signal(webrtcSignal *simplepeer.WebrtcSignal)
* 设置本节点的信号
func (*PionPeer) UnregistEvent ¶
type PoolEvent ¶
type PoolEvent struct { Name string Source IWebrtcPeer Data interface{} }
type Sfu ¶
type Sfu struct {
// contains filtered or unexported fields
}
* sfu是多个peer的集合,一个room可以有多个sfu,但是在一个服务器peer上只能有一个,所以roomId和sfuId相同
type SfuPool ¶
type SfuPool struct {
// contains filtered or unexported fields
}
* 一个服务器上的所有sfu的集合,每个sfu都属于不同的room
func GetSfuPool ¶
func GetSfuPool() *SfuPool
type WebrtcPeerPool ¶
type WebrtcPeerPool struct {
// contains filtered or unexported fields
}
func GetWebrtcPeerPool ¶
func GetWebrtcPeerPool() *WebrtcPeerPool
func (*WebrtcPeerPool) EmitEvent ¶
func (this *WebrtcPeerPool) EmitEvent(name string, event *PoolEvent) (interface{}, error)
func (*WebrtcPeerPool) Receive ¶
func (this *WebrtcPeerPool) Receive(netPeer *p2p.NetPeer, payload map[string]interface{})
*
- 接收到signal的场景,有如下多张场景
- 1.自己是被动方,而且同peerId的连接从没有创建过
- @param peerId
- @param connectSessionId
- @param data
func (*WebrtcPeerPool) RegistEvent ¶
func (this *WebrtcPeerPool) RegistEvent(name string, fn func(event *PoolEvent) (interface{}, error))
func (*WebrtcPeerPool) UnregistEvent ¶
func (this *WebrtcPeerPool) UnregistEvent(name string) bool
type WebrtcSimplePeer ¶
func (*WebrtcSimplePeer) AddTrack ¶
func (this *WebrtcSimplePeer) AddTrack(track webrtc.TrackLocal) (*webrtc.RTPSender, error)
func (*WebrtcSimplePeer) Connected ¶
func (this *WebrtcSimplePeer) Connected() bool
* 获取本节点的webrtc连接状态
func (*WebrtcSimplePeer) Create ¶
func (this *WebrtcSimplePeer) Create(targetPeerId string, iceServer []webrtc.ICEServer, initiator bool, options *webrtc2.WebrtcOption, router *simplepeer.Router)
* 创建新的Webrtc节点
func (*WebrtcSimplePeer) CreateTrack ¶
func (this *WebrtcSimplePeer) CreateTrack(c *webrtc.RTPCodecCapability, trackId string, streamId string) (webrtc.TrackLocal, error)
func (*WebrtcSimplePeer) Destroy ¶
func (this *WebrtcSimplePeer) Destroy(err error)
* 关闭本节点的wenbrtc连接,并从池中删除
func (*WebrtcSimplePeer) EmitEvent ¶
func (this *WebrtcSimplePeer) EmitEvent(name string, event *PoolEvent) (interface{}, error)
func (*WebrtcSimplePeer) GetPeer ¶
func (this *WebrtcSimplePeer) GetPeer() *p2p.NetPeer
func (*WebrtcSimplePeer) GetSenders ¶
func (this *WebrtcSimplePeer) GetSenders(streamId string) []*webrtc.RTPSender
func (*WebrtcSimplePeer) GetTrackRemotes ¶
func (this *WebrtcSimplePeer) GetTrackRemotes(streamId string) []*webrtc.TrackRemote
func (*WebrtcSimplePeer) Id ¶
func (this *WebrtcSimplePeer) Id() string
func (*WebrtcSimplePeer) ReadRTP ¶
func (this *WebrtcSimplePeer) ReadRTP(track *webrtc.TrackRemote) (*rtp.Packet, error)
func (*WebrtcSimplePeer) RegistEvent ¶
func (this *WebrtcSimplePeer) RegistEvent(name string, fn func(event *PoolEvent) (interface{}, error)) bool
func (*WebrtcSimplePeer) Router ¶
func (this *WebrtcSimplePeer) Router() *simplepeer.Router
func (*WebrtcSimplePeer) Send ¶
func (this *WebrtcSimplePeer) Send(data []byte) error
* 利用缺省数据通道发送数据
func (*WebrtcSimplePeer) SendText ¶
func (this *WebrtcSimplePeer) SendText(data string) error
* 利用缺省数据通道发送数据
func (*WebrtcSimplePeer) SetPeer ¶
func (this *WebrtcSimplePeer) SetPeer(connectPeerId string, connectSessionId string, peerType string)
func (*WebrtcSimplePeer) Signal ¶
func (this *WebrtcSimplePeer) Signal(webrtcSignal *simplepeer.WebrtcSignal)
* 设置本节点的信号
func (*WebrtcSimplePeer) UnregistEvent ¶
func (this *WebrtcSimplePeer) UnregistEvent(name string) bool
Click to show internal directories.
Click to hide internal directories.