mirror of
https://github.com/pion/webrtc.git
synced 2025-10-05 15:16:52 +08:00

Fixes #515 This includes a few small and closely related changes: 1. All occurrences of the build tag `+build js` have been changed to the more precise `+build js,wasm`. This will exclude the files from being included by third-party compilers like GopherJS, with which they are incompatible. 2. Some files which are incompatible with JavaScript/Wasm now have the correct build tag (`+build -js`) so they will be excluded from Wasm builds. 3. Some configuration options which are incompatible with JavaScript/Wasm (or at least the current bindings) will now no longer appear in Wasm builds. This meant creating new files with new struct definitions and the appropriate build tags.
54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
// +build js,wasm
|
|
|
|
package webrtc
|
|
|
|
import (
|
|
"github.com/pions/webrtc/internal/ice"
|
|
)
|
|
|
|
// Configuration defines a set of parameters to configure how the
|
|
// peer-to-peer communication via PeerConnection is established or
|
|
// re-established.
|
|
type Configuration struct {
|
|
// ICEServers defines a slice describing servers available to be used by
|
|
// ICE, such as STUN and TURN servers.
|
|
ICEServers []ICEServer
|
|
|
|
// ICETransportPolicy indicates which candidates the ICEAgent is allowed
|
|
// to use.
|
|
ICETransportPolicy ICETransportPolicy
|
|
|
|
// BundlePolicy indicates which media-bundling policy to use when gathering
|
|
// ICE candidates.
|
|
BundlePolicy BundlePolicy
|
|
|
|
// RTCPMuxPolicy indicates which rtcp-mux policy to use when gathering ICE
|
|
// candidates.
|
|
RTCPMuxPolicy RTCPMuxPolicy
|
|
|
|
// PeerIdentity sets the target peer identity for the PeerConnection.
|
|
// The PeerConnection will not establish a connection to a remote peer
|
|
// unless it can be successfully authenticated with the provided name.
|
|
PeerIdentity string
|
|
|
|
// Certificates are not supported in the JavaScript/Wasm bindings.
|
|
// Certificates []Certificate
|
|
|
|
// ICECandidatePoolSize describes the size of the prefetched ICE pool.
|
|
ICECandidatePoolSize uint8
|
|
}
|
|
|
|
func (c Configuration) getICEServers() (*[]*ice.URL, error) {
|
|
var iceServers []*ice.URL
|
|
for _, server := range c.ICEServers {
|
|
for _, rawURL := range server.URLs {
|
|
url, err := ice.ParseURL(rawURL)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
iceServers = append(iceServers, url)
|
|
}
|
|
}
|
|
return &iceServers, nil
|
|
}
|