Skip to content
This repository has been archived by the owner on Nov 14, 2022. It is now read-only.

Session sharing #14

Open
2 tasks
0xHericles opened this issue Oct 9, 2019 · 16 comments
Open
2 tasks

Session sharing #14

0xHericles opened this issue Oct 9, 2019 · 16 comments

Comments

@0xHericles
Copy link
Owner

Description

Cast the session with read-only permissions and create a button that generates a link to view the broadcast

Files

Tasks

  • Create a button in the user interface that will generate the share link
  • Cast session with read-only permissions via generated link
@0xHericles 0xHericles added enhancement New feature or request hacktoberfest labels Oct 9, 2019
@vladdoster
Copy link
Collaborator

vladdoster commented Oct 12, 2019

How would the session be shared? SSH tunnel? Ngrok?

@0xHericles
Copy link
Owner Author

@vladdoster I still hadn't thought of how to do that. But we can discuss some ways. Do you have any suggestions?

@vladdoster
Copy link
Collaborator

vladdoster commented Oct 12, 2019

I know that it would introduce another dependency, but ngrok seems to work really well. We could write a wrapper around adding ngrok credentials to make it as easy as possible.

@vladdoster
Copy link
Collaborator

Btw, Would love to implement this if we come to a good solution.

@0xHericles
Copy link
Owner Author

0xHericles commented Oct 13, 2019

@vladdoster Can you explain to me how you would do this? I'm still a little confused. Can we share the session with read-only permissions using ngrok? 🤔

If you can do that, and you think ngrok does it well, feel free to implement it. 🎉

@vladdoster
Copy link
Collaborator

Unfortunately Ngrok does not have that capability. Let me try to clear up my confusion.

Are you wanting someone to just be able to view whats happening or to be able to type in commands them self?

@0xHericles
Copy link
Owner Author

Just be able to view what's happening. But we can add sharing with edit permissions too, it looks like an interesting feature... What do you think? 🤓

@vladdoster
Copy link
Collaborator

vladdoster commented Oct 14, 2019

Okay so after a bit more thought, I have a new idea. In the request we check the host, if it isn't original host the input isn't reflected and not executed. Not too sure if devops is poor with checking host header. This would be paired with ngrok to be able to have a outside of lan viewer.

Then to take the edit permissions issue... In docker this could be tackled with a custom user group and toggling read/write permissions for /

On running it standalone really not too sure, ideas?

@0xHericles
Copy link
Owner Author

Hmmm... @vladdoster. I don't know if it's the best way, but I think that makes more sense implement it using WebSocket connections, and the python application would be responsible to send and receive the messages from the clients.

@vladdoster
Copy link
Collaborator

I have something in the works, stay tuned. This weekend I will wrap up the loose ends!

@vladdoster
Copy link
Collaborator

Using WS to control session sharing

@0xHericles
Copy link
Owner Author

Okay, @vladdoster. I'll be waiting for it! 🚀 🔥

@0xHericles
Copy link
Owner Author

Any news @vladdoster? 👀

@vladdoster
Copy link
Collaborator

Still working on it, let me push my WIP

@0xHericles
Copy link
Owner Author

The session sharing can be done via WebRTC. We still need to discuss what is the best way to implement it, but there's a proposal:

As mentioned in #91, we could have three operational modes. Host, Editor, and Viewer. Based on these specifications, I think that makes sense only the host connects directly to the server. Editors and viewers could send/receive messages to the host, and then the host will send the messages to the server, etc...

So we'll have 2 types of links.

The session sharing will happen on the secondary link. Host nodes (cast-sh instances) could have a list containing all the consumers that are subscribed in your stream along with their permissions. And working via WebRTC (P2P)

@0xHericles
Copy link
Owner Author

Update: Blocked by #87

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants