-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ICE candidate errors sending to a server #151
Conversation
FCM
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After #152 I was unable to run make cargo.gen.bridge
due to Dart dependencies errors:
2024/02/16 18:42:04 [INFO] Phase: Generate Dart code
2024/02/16 18:42:04 [ERROR] Fatal error encountered. Rerun with RUST_BACKTRACE=1 or RUST_BACKTRACE=full for more details.
Error: External command failure.
Please update version of ffigen in your dev_dependencies. (version >=8.0.0, <10.0.0)
Caused by:
Please update version of ffigen in your dev_dependencies. (version >=8.0.0, <10.0.0)
make: *** [cargo.gen.bridge] Error 1
@evdokimovs please, resolve and regenerate the files properly.
Temporary pinned version of |
Synopsis
Sometimes ICE candidate error can happen on
PeerConnection
, but it will be just client side error and we will not know that this is happened, and what exactly happened. This can lead to the silent bugs (bugs we don't know about) or hardly fixable bugs (because we're not having any info about them). So we need to somehow monitor this kind of errors (and similar errors in the future).Solution
Firstly, we need to introduce new
PeerMetrics
which will be used for monitoring errors which can happen on aPeerConnection
. It will be calledPeerMetrics::PeerConnectionError
.Then we need to listen for
onicecandidateerror
events on client and send this errors to the server in thisPeerMetrics
. At this moment, server will just print them in logs, but in the future some additional mechanisms can be added (like displaying count of them in metrics, or using some backup methods to interconnect users somehow differently).When this PR was started,
web-sys
had no support forRTCPeerConnectionIceEvent
type, so it was implemented, but currently it's not released feature, so it's required at this moment to use git version ofwasm-bindgen
and related crates.wasm-bindgen
releases every month at 6th, so most likely we can switch to the crates.io version after 06.03.2024.Checklist
k::
labels applied