62 Commits

Author SHA1 Message Date
Joe Turki
22dd7b733b Replace interface{} with any 2025-06-19 23:44:08 +03:00
WofWca
4ee374714a Implement DataChannel OnError/OnClosing for WASM
`OnClosing` is only implemented in WASM at this time.

`OnError` isn't tested, but should work as follows the existing
code.

Relates to #479 
Relates to #519
2025-02-11 12:39:56 -05:00
Joe Turki
feeeebf251 Upgrade golangci-lint, more linters
Introduces new linters, upgrade golangci-lint to version (v1.63.4)
2025-01-18 07:16:06 -06:00
Juliusz Chroboczek
f29ef99b22 Avoid leaking tickers
In Go 1.22 and earlier, a ticker needs to be explicitly stopped
when it's no longer useful in order to avoid a resource leak.
In Go 1.23 and later, an orphaned ticker will eventually be
garbage collected, but it's still more thrifty to stop it early.
2024-08-01 14:35:24 -04:00
Sean DuBois
09461d55a6 Remove examples/internal
Users find it frustrating that example code doesn't work out of tree.
This makes copying the examples out of the repo easier.

Relates to #1981
2024-05-20 10:54:16 -04:00
Sean DuBois
f66b8b6ce2 Update examples to handle going to Closed
Relates to #1767
2023-09-08 16:20:12 -04:00
Sean DuBois
50301ea73c Update docs to use go install
`go get` is not a supported method to install binaries anymore
2023-09-05 13:17:23 -04:00
Sean DuBois
5aa5fac6ea Remove GO111MODULE from docs 2023-09-05 11:48:14 -04:00
Sean DuBois
dc4b591c4d Start pion/webrtc/v4
60eea43 is a breaking change
2023-09-05 11:48:14 -04:00
Steffen Vogel
683fc837d0 Make repo REUSE compliant 2023-05-05 11:58:49 -04:00
Pion
308f8616a3 Update CI configs to v0.10.6
Update lint scripts and CI configs.
2023-04-08 14:24:19 -04:00
mohammadne
fba48cda24 Add Mermaid Chart to examples/data-channels
Start new architecture section
2023-02-11 00:48:47 -05:00
Sean DuBois
9c47fea3f2 Remove new RTCSessionDescription pattern
SetRemoteDescription accepts a RTCSessionDescriptionInit so this is no
longer needed

Resolves #2324
2022-10-24 22:36:30 -04:00
Sean DuBois
94262c1b2b Add DTLS, ICE and SCTP Transport to WASM
Only available in the browser, not in wrtc yet.

Resolves #2099
2022-02-08 00:37:47 -05:00
Sean DuBois
ce533d527f Add StandardJS workflow
Been running these locally only.
2022-02-05 22:20:52 -05:00
Roman Romanenko
7c8064052e Update all examples with copySessionDescription
copySessionDescription adds a button to all examples that copies the
local Session Description. This makes it easier for users to copy the
values.

Resolves #2092
2022-02-05 13:41:44 -05:00
Sean DuBois
157220e800 Run gofmt to add new build constraints
Also remove some 1.13 specific WASM code
2022-01-17 22:36:01 -05:00
Antoine Baché
7e049ec5ec Update examples
TestNonFatalRead now has an timeout.
Examples now use Mime types, instead of raw strings.

Fixes #839
2021-07-02 11:49:55 -04:00
Nick Mykins
a1bbddd0d8 Improve docs around Go Modules
adds export `GO111MODULE=on` to examples READMEs when appropriate
2020-06-30 20:14:23 -07:00
Sean DuBois
bb3aa9717f Move to pion/ice@v2
Removed support for trickle ice

Resolves #1274
2020-06-28 00:01:47 -07:00
Sean DuBois
89d7de1787 Start /v3
See #9 for the features we have planned, and the breaking changes that
may occur.
2020-06-25 09:45:27 -07:00
Masahiro Nakamura
31e3a1a6ac Update how to install in example projects
Download instructions should contain 'v2' now.
2020-04-02 19:22:23 -07:00
Sean DuBois
e12a7bf1e7 Fix examples error handling
Panic on the actual error we are checking in
data-channels-close and data-channels
2019-07-18 10:12:55 -07:00
Sean DuBois
cc940bc5f4 Rename pion-webrtc -> Pion WebRTC
Mass rename everywhere we forgot to update
2019-06-30 21:29:35 -07:00
Sean DuBois
dbde6114a2 Update import paths
Add /v2 to import paths everywhere
2019-04-07 02:17:15 -07:00
Sean DuBois
1cdfc10c84 Mass replace pions -> pion
Pions organization was renamed to pion
2019-04-04 15:32:03 -07:00
Alex Browne
5ee8b1a5c5 Add ICE candidate event handlers
Add OnICECandidate and OnICEGatheringStateChange methods to
PeerConnection. The main goal of this change is to improve API
compatibility with the JavaScript/Wasm bindings. It does not actually
add trickle ICE support or change the ICE candidate gathering process,
which is still synchronous in the Go implementation. Rather, it fires
the appropriate events similar to they way they would be fired in a true
trickle ICE process.

Remove unused OnNegotiationNeeded event handler. This handler is not
required for most applications and would be difficult to implement in
Go. This commit removes the handler from the JavaScript/Wasm bindings,
which leads to a more similar API for Go and JavaScript/Wasm.

Add OnICEGatheringStateChange to the JavaScript/Wasm bindings. Also
changes the Go implementation so that the function signatures match.
2019-03-25 14:22:11 -07:00
Alex Browne
012a7ea686 Improve build tags for Wasm
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.
2019-03-22 10:48:03 -07:00
Sean DuBois
f174986c74 Fix all lint errors in examples/
Resolves #531 and Resolves #470
2019-03-21 09:31:27 -07:00
Alex Browne
0f1ddf0825 Add JavaScript/WASM bindings
Resolves #478. Adds minimal JavaScript/WASM bindings. This makes it
possible to compile core parts of pions/webrtc to WASM and run it in the
browser. Only data channels are supported for now and there is
limited/no support for certificates and credentials.
2019-03-08 00:26:17 +01:00
backkem
911013755a Examples: serve WASM examples locally
The examples server now detects 'demo.wasm' files in
the jsfiddles. Examples layout updated to match Pion style.
Resolves #491
2019-03-07 22:44:51 +01:00
backkem
f5d11df18d API: Review DataChannel
Resolves #427
2019-02-22 15:35:32 +01:00
backkem
ddcef2d84f Examples: Make examples/util internal
Resolves #424
2019-02-20 21:32:48 +01:00
backkem
bf422e0c0a API: Avoid exposing pkg/ice
OnICEConnectionStateChange now return a ICEConnectionState instead of
ice.ConnectionState.
Resolves #422
2019-02-20 20:47:34 +01:00
Max Hawkins
0e7086d37a Remove RTC prefix from all names
Let's pull off the bandaid!

* Reduces studdering: webrtc.RTCTrack -> webrtc.Track
* Makes it easier to find types by editor autocomplete
* Makes code read more fluently (less repetition)

Since we're breaking the API in 2.0, our only chance to
do this is now.

Relates to #408
2019-02-17 16:22:56 -08:00
Sean DuBois
b67f73c34f Stop Create(Offer/Answer) from setting localDesc
This deviates from the WebRTC spec, so we need to fix it. This is a
massively breaking change, so we need to figure out the best way to help
users with this.

I also renamed our RTCPeerConnection constructor. The hope is that
people will refer to the examples/backlog and see what changed.

Resolves #309
2019-02-15 23:13:25 -08:00
backkem
e203a0537c ORTC: Add basic data channel constructors
Resolves #273
2019-01-08 13:43:49 -08:00
backkem
7a527fadb3 Examples: exchange entire RTCSessionDescription
Resolves #39
2018-12-08 11:06:16 +01:00
Michael MacDonald
d5cf800ebb Safer Event Callbacks
Resolves #218

Change Event Callback APIs to setter functions which take care of
locking so that users don't need to know about or remember
to do this.
2018-11-19 12:42:15 -05:00
backkem
2eddc94642 Examples: make uniform
Resolves #231
2018-11-19 00:42:16 -08:00
backkem
0043a4bf9a DataChannels: OpenChannel & OnOpen
- OpenChannel messages are now sent after SCTP is Established.
- The OnOpen handler tells the application when a channel has opened.

Relates to #159
2018-09-25 13:07:39 -07:00
Sean DuBois
cc4160f3ad Fix deprecation cutover, and bad SDP creation
Methods that were marked as deprecated weren't properly handled. There
was a mix of old+new ones supported which caused broken behavior.

SDP creation didn't add SCTP to Offer

Resolves #156
2018-09-19 00:38:17 -07:00
Konstantin Itskov
cf2fdf0776 Revert public API name changes for on event handlers 2018-09-04 19:15:55 -04:00
Konstantin Itskov
0a2568695a Re-organize CreateDataChannel function and add limited spec compliance 2018-09-04 12:11:17 -04:00
Konstantin Itskov
f738cec9da Change the names of event handlers and attributes for readability 2018-09-04 09:33:05 -04:00
Konstantin Itskov
20191a4974 Add an almost complete rfc complaint RTCConfiguration 2018-08-28 01:03:09 -07:00
backkem
16193eb742 examples: cleanup the data-channels-create example 2018-08-18 00:18:23 -07:00
backkem
8d6e30ec87 datachannel: send OpenChannel message 2018-08-18 00:18:23 -07:00
Sean DuBois
b431455273 Add STUN to all examples 2018-08-16 14:51:57 -07:00
Sean DuBois
78b6a76cc5 Revert "Move ICE package from public to internal folder structure"
ICE Package needs to be public for peerConnection.OnICEConnectionStateChange

This reverts commit b831f87d28.
2018-08-16 10:10:29 -07:00