Collaborative WebRTC disconnects with big enough update
See original GitHub issueDescription
Collaborative WebRTC silently disconnects with too big display data being transferred.
Reproduce
from IPython.display import display
payload = "a" * 1024 * 256
display({"text/html": f"OK<!--{payload}-->"}, raw=True)
y-webrtc logging enabled with
// enable logging for all modules
localStorage.log = 'true'
Expected behavior
WebRTC would not disconnect silently. Either support large payloads or gracefully degrades.
Context
RobotKernel injects execution logs into notebook by displaying HTML links with large inline data URIs. Not beautiful, but has been working too well so far:
https://robotkernel.readthedocs.io/en/latest/_/lab/index.html?path=Example.ipynb&room=demo
/cc @bollwyvl
Issue Analytics
- State:
- Created a year ago
- Comments:12 (2 by maintainers)
Top Results From Across the Web
Sending large files over webrtc data channel using Simple ...
I'm trying to send large files of size ~500mb over the data channel to the other ... Collaborative WebRTC disconnects with big enough...
Read more >Twilio WebRTC TURN relay randomly stops working after a ...
Now I get the real disconnection when the ice connection state goes to 'failed'.
Read more >HTTP, WebSocket, gRPC, or WebRTC - Which protocol is best?
In this post, we'll take a look at four popular solutions: HTTP, WebSocket, gRPC, and WebRTC. We will explore each protocol by investigating ......
Read more >ICE in WebRTC: Server Setup and Relative Performance
A large percentage of WebRTC calls have network restrictions for calls ... ICE connection state: new => checking => disconnected Connection ...
Read more >VidyoConnect for WebRTC (Native & Transcoded): Releases
An issue was resolved affecting VidyoConnect for Native WebRTC users who had issues getting disconnected from calls when using Google Chrome ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
So over on https://github.com/jupyterlite/jupyterlab-webrtc-docprovider/pull/3, I’ve hit many of the things from #241… probably would be ready to release that fairly soon. As it imports only
@jupyterlab
(and not@jupyterlite
) APIs, and works just fine with main-line lab and retro, I think it wouldn’t even have to be marked beta.Once that happens, I feel like replacing the existing provider in lite core with the nullprovider, and removing the
y-webrtc
dependency altogether is our best play: at worst, the few pages the reference it could say, _please ensurejupyterlite_webrtc_docprovider
is installed, but otherwise wouldn’t have to change.We could add a
jupyterlite[webrtc]
extra that also grabbed it, but it could just as easily beignore-sys-prefix
which might not be the intended behavior… I suppose we could add anentry_point
that extended thejupyter lite build
, but that seems unsatisifying.Anyhow, what I haven’t explored yet is a simple, self-hosted signaling server to recommend, e.g. as a jupyterhub service: relying on unmirrorable, public/free services at runtime is always shady, I think it would be a good solution for many use cases, already, over a user sharing the
jupyter_server
instance 😱 .To sum up the progress on demonstrating this over on #600:
jupyterlab-webrtc-docprovider
.jupyterlab-contrib
: it would presumably work with stock JupyterLab, and an off-the-shelf singaling server could be hosted as a JupyterHub service, which sounds more robust than sharing jupyter servers.