mirror of
https://github.com/pion/webrtc.git
synced 2025-10-21 22:29:25 +08:00
Remove global API for settings engine
Limit global API to the basics needed to construct a PeerConnection.
This commit is contained in:

committed by
Michiel De Backker

parent
585f50ef86
commit
4fe2728721
24
api.go
24
api.go
@@ -1,9 +1,5 @@
|
|||||||
package webrtc
|
package webrtc
|
||||||
|
|
||||||
import (
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// API bundles the global funcions of the WebRTC and ORTC API.
|
// API bundles the global funcions of the WebRTC and ORTC API.
|
||||||
// Some of these functions are also exported globally using the
|
// Some of these functions are also exported globally using the
|
||||||
// defaultAPI object. Note that the global version of the API
|
// defaultAPI object. Note that the global version of the API
|
||||||
@@ -53,26 +49,6 @@ func WithSettingEngine(s SettingEngine) func(a *API) {
|
|||||||
// in the future.
|
// in the future.
|
||||||
var defaultAPI = NewAPI()
|
var defaultAPI = NewAPI()
|
||||||
|
|
||||||
// Setting engine API
|
|
||||||
|
|
||||||
// SetEphemeralUDPPortRange on the default API.
|
|
||||||
// See SettingEngine for details.
|
|
||||||
func SetEphemeralUDPPortRange(portMin, portMax uint16) error {
|
|
||||||
return defaultAPI.settingEngine.SetEphemeralUDPPortRange(portMin, portMax)
|
|
||||||
}
|
|
||||||
|
|
||||||
// DetachDataChannels on the default API.
|
|
||||||
// See SettingEngine for details.
|
|
||||||
func DetachDataChannels() {
|
|
||||||
defaultAPI.settingEngine.DetachDataChannels()
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetConnectionTimeout on the default API.
|
|
||||||
// See SettingEngine for details.
|
|
||||||
func SetConnectionTimeout(connectionTimeout, keepAlive time.Duration) {
|
|
||||||
defaultAPI.settingEngine.SetConnectionTimeout(connectionTimeout, keepAlive)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Media Engine API
|
// Media Engine API
|
||||||
|
|
||||||
// RegisterCodec on the default API.
|
// RegisterCodec on the default API.
|
||||||
|
@@ -14,9 +14,15 @@ const messageSize = 15
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
// Since this behavior diverges from the WebRTC API it has to be
|
// Since this behavior diverges from the WebRTC API it has to be
|
||||||
// enabled using global switch.
|
// enabled using a settings engine. Mixing both detached and the
|
||||||
// Mixing both behaviors is not supported.
|
// OnMessage DataChannel API is not supported.
|
||||||
webrtc.DetachDataChannels()
|
|
||||||
|
// Create a SettingEngine and enable Detach
|
||||||
|
s := webrtc.SettingEngine{}
|
||||||
|
s.DetachDataChannels()
|
||||||
|
|
||||||
|
// Create an API object with the engine
|
||||||
|
api := webrtc.NewAPI(webrtc.WithSettingEngine(s))
|
||||||
|
|
||||||
// Everything below is the pion-WebRTC API! Thanks for using it ❤️.
|
// Everything below is the pion-WebRTC API! Thanks for using it ❤️.
|
||||||
|
|
||||||
@@ -29,8 +35,8 @@ func main() {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a new RTCPeerConnection
|
// Create a new RTCPeerConnection using the API object
|
||||||
peerConnection, err := webrtc.NewPeerConnection(config)
|
peerConnection, err := api.NewPeerConnection(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@@ -81,7 +87,7 @@ func main() {
|
|||||||
|
|
||||||
// Wait for the answer to be pasted
|
// Wait for the answer to be pasted
|
||||||
answer := webrtc.SessionDescription{}
|
answer := webrtc.SessionDescription{}
|
||||||
signal.Decode(signal.MustReadStdin(), answer)
|
signal.Decode(signal.MustReadStdin(), &answer)
|
||||||
|
|
||||||
// Apply the answer as the remote description
|
// Apply the answer as the remote description
|
||||||
err = peerConnection.SetRemoteDescription(answer)
|
err = peerConnection.SetRemoteDescription(answer)
|
||||||
|
@@ -14,9 +14,15 @@ const messageSize = 15
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
// Since this behavior diverges from the WebRTC API it has to be
|
// Since this behavior diverges from the WebRTC API it has to be
|
||||||
// enabled using global switch.
|
// enabled using a settings engine. Mixing both detached and the
|
||||||
// Mixing both behaviors is not supported.
|
// OnMessage DataChannel API is not supported.
|
||||||
webrtc.DetachDataChannels()
|
|
||||||
|
// Create a SettingEngine and enable Detach
|
||||||
|
s := webrtc.SettingEngine{}
|
||||||
|
s.DetachDataChannels()
|
||||||
|
|
||||||
|
// Create an API object with the engine
|
||||||
|
api := webrtc.NewAPI(webrtc.WithSettingEngine(s))
|
||||||
|
|
||||||
// Everything below is the pion-WebRTC API! Thanks for using it ❤️.
|
// Everything below is the pion-WebRTC API! Thanks for using it ❤️.
|
||||||
|
|
||||||
@@ -29,8 +35,8 @@ func main() {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a new RTCPeerConnection
|
// Create a new RTCPeerConnection using the API object
|
||||||
peerConnection, err := webrtc.NewPeerConnection(config)
|
peerConnection, err := api.NewPeerConnection(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@@ -65,7 +71,7 @@ func main() {
|
|||||||
|
|
||||||
// Wait for the offer to be pasted
|
// Wait for the offer to be pasted
|
||||||
offer := webrtc.SessionDescription{}
|
offer := webrtc.SessionDescription{}
|
||||||
signal.Decode(signal.MustReadStdin(), offer)
|
signal.Decode(signal.MustReadStdin(), &offer)
|
||||||
|
|
||||||
// Set the remote SessionDescription
|
// Set the remote SessionDescription
|
||||||
err = peerConnection.SetRemoteDescription(offer)
|
err = peerConnection.SetRemoteDescription(offer)
|
||||||
|
Reference in New Issue
Block a user