RazortoothRTC / epochedu-webrtc

EpochEDU-WebRTC is an EDU oriented toolbox for managing classrooms in realtime
Other
1 stars 0 forks source link

Monitor Featre: The ability to synchronize student and teacher screens (screen share) #2

Closed truedat101 closed 10 years ago

truedat101 commented 10 years ago

(the teacher's screen can be displayed in real time for all students (acceptable delay TBD)

truedat101 commented 10 years ago

To accomplish this we have several options:

I believe we can utilize the RTCPeerConnection to do the screen sharing. I need to quickly evaluate how to host the services for STUN and TURN and ICE, if they are needed.

truedat101 commented 10 years ago

I think we can get away without needing STUN, TURN, and ICE for the purposes of sharing within a local network. I need to verify this. I'll start using the simpl1/screencast demo. It's only on a local connection, so I'll jimmy this to work with any connected peer.

I spent some time looking at PeerJS and SimpleWebRTC. PeerJS looks pretty good. We can definitely use it for file sharing.

We are going to need a secure endpoint serving https. I'll need to generate self signed certs.

truedat101 commented 10 years ago

Here are some alternative approaches. I may decide it is easier to stick with tab sharing: http://www.html5rocks.com/en/tutorials/streaming/screenshare/

to get the point across. See the above for more details.

truedat101 commented 10 years ago

I need to come up with something that can be viewed on HTML5 ... I'd prefer not requiring special players and not with enormous network load. Thinking.

truedat101 commented 10 years ago

Ok, so number 1 choice in the solution here using webrtc is too difficult at the moment for a number of reasons, starting with the set up, and then the web socket security. I need to spend some time reading those specs and review a sensible approach to signaling. I think I can leverage socket.io (which I have in my setup). Todo later.

truedat101 commented 10 years ago

To quickly get off the ground, there are three options:

1) windows: tightvnc 2) Linux: novnc + x11vnc (this is what openstack uses) 3) guacamole:

See: http://jorgenmodin.net/index_html/archive/2010/11/30/novnc-vnc-screen-sharing-in-the-web-browser

truedat101 commented 10 years ago

I'm using x11vnc (on linux) + novnc.

truedat101 commented 10 years ago

A couple things on the setup:

x11vnc MUST have a password, or else you'll be insecure, and remote connection doesn't pass through. Do:

noVNC has some special configuration as well:

truedat101 commented 10 years ago

Note, the final URL you get is : http://192.168.1.13:6080/vnc.html?host=mintyfresh&port=6080

It will have a hostname supplied. I don't know whether that makes a difference, probably for security, though we aren't running a proper DNS.

truedat101 commented 10 years ago

So just need to make this a configuration option in the epochedu, to substitute the teacher IP address

truedat101 commented 10 years ago

Also, will need to script the startup. For a windows-based demo system, I'll need to provide an alternate setup. For now, I'll only be supporting this linux demo system.

truedat101 commented 10 years ago

This is a new feature, it's not what we thought. #1 is the screen sharing. This one is more like a security camera ... it will cycle through screens of each student's screen.

truedat101 commented 10 years ago

screenshot

truedat101 commented 10 years ago

Above is the feature in a nutshell. Left out is the detail about how the screens rotate. They just switch on the screen between users. Somehow we need to update the text to display which user.

truedat101 commented 10 years ago

I've completed the base monitor app feature. Need to just add the dialog for setting a timeout.

truedat101 commented 10 years ago

This is officially done. The GUI took a lot longer than expected to just get the dialog + input going. There is some bizarre quirk I suspect with jqmodal and caching of data in the input fields. Fixed a bug with the handling of "teacher" nick so that a teacher is skipped in the process of doing session monitor (don't monitor yourself). Good news with this approach is the plug doesn't do all the work, it's the browser.

truedat101 commented 10 years ago

The only thing that was left was cleaning up the sharing and the monitoring dialog. Done.