3 ms·
Alternative to having browser (or any app) in a container and accessing its gui using noVNC (or Apache Guacamole). Except, this is done using WebRTC, what makes
by m1k1o 5y ago
Alternative to having browser (or any app) in a container and accessing its gui using noVNC (or Apache Guacamole). Except, this is done using WebRTC, what makes it perfect for viewing videos + audio of course.
- jcun4128 5y agoWhat's the bridge for the input? I'm not 100% yet on what this is doing, conceptually I think I got it. Streaming a video broadcast of a browser. But I would think that you need like a websocket to send the mouse coordinates/click/typing over the actual browser. Is that an extension in the browser or is it literally a remote OS kind of deal eg. Teamviewer.
- Sean-Der 5y agoIt is using a WebRTC Data Channel. You can send binary/text data over the same connection that is receiving the media. The other exciting thing about Data Channels is that you can send lossy/unordered messages and get flow control. You can know how much data you can send and how fast. You can build faster and more responsive data APIs that way!
- jcun4128 5y agoWhat I'm saying is from the gif (repo README) you see this localhost web thing. I'm aware you can screenshare say from Chrome and show a tab or your whole desktop. In this way you have mouse control/people would just watch your screen. I'm not clear on how they're clicking into that shared browser (to use YouTube). Normally for this kind of thing you need an OS-level component. There's something on the GO side but trying to find the bridge on Vue side https://github.com/m1k1o/neko/blob/master/server/internal/websocket/control.go#L88 https://github.com/m1k1o/neko/blob/master/server/internal/we... idk maybe somewhere in here https://github.com/m1k1o/neko/blob/master/client/src/components/controls.vue#L252 https://github.com/m1k1o/neko/blob/master/client/src/compone... I had to deal with this problem too with regard to remote control somehow without installing an OS-level app but that didn't happen went a different route. Idk this is a cool project, looks like it is possible to do remote control with webrtc. And webrtc as said above can replace websocket for data transfer. https://github.com/maxogden/screencat https://github.com/maxogden/screencat ehh then again: > On the host side the app must synthesize mouse and keyboard events on the host OS. This is the tricky part, and the only part where a custom native node addon (C++) is required. Yet another cool project robotjs hmm
- funnyflamigo 5y agoIt's in a container with xorg running. It doesn't need kernel level access but it does need userland access which it does have access to in the container.
- jcun4128 5y ago> UserLAnd Hmm that's cool I was not aware of this thing, not surprising but still cool to find out now.
- JeremyNT 5y agoI also find it confusing. Is this just a docker-compose setup, or did you write the code? I see some go code in there, did you write the WebRTC server stuff yourself? If so, how come it's not published as a normal package which doesn't require docker? I'm asking because I'm interested in remote desktop solutions, but in many cases I don't want/need docker, so any novel remote desktop utilities are interesting to me.
- m1k1o 5y agoThis repository features all custom writen code. Go backend and Vue frontend. It is publised as a container because of lots of dependencies and the overall environment setup. Although, I think about publishing the core of it as a package, fully fledged alternative to noVNC. Where X server desktop can be shared using WebRTC technology to a browser.
- JeremyNT 5y ago> Although, I think about publishing the core of it as a package, fully fledged alternative to noVNC. Where X server desktop can be shared using WebRTC technology to a browser. I think that would be nice! There are a lot of ways to approach this (I've used xpra, vnc, remote X, xrdp...) and there are pros/cons to them all. It might be useful for more people without the docker requirement :)
- mirotalk 5y agoHi JeremyNT, you can try this one Open Source Remote Desktop P2P: https://github.com/miroslavpejic85/p2p https://github.com/miroslavpejic85/p2p