Skip to content
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

Way to sync up to host #104

Open
kyle8998 opened this issue Aug 7, 2018 · 2 comments
Open

Way to sync up to host #104

kyle8998 opened this issue Aug 7, 2018 · 2 comments
Assignees
Projects
Milestone

Comments

@kyle8998
Copy link
Owner

kyle8998 commented Aug 7, 2018

There is no way for viewers to sync to the host if they get disconnected

@kyle8998 kyle8998 added this to the 2.0 milestone Aug 7, 2018
@kyle8998 kyle8998 self-assigned this Aug 7, 2018
@kyle8998 kyle8998 added this to To do in 2.0 Feb 25, 2019
@Joshfindit
Copy link

Suggestion: send an initial "sync" packet on connect.

Also suggest having # urls (such as domain.herokuapp.com/#/r/1) so that a viewer that has to reconnect can refresh the page and still stay in the same room

@Joshfindit
Copy link

Having more experience with the app now, I realize that I misinterpreted the issue.

Instead I suggest a "heartbeat".
Not exactly sure what the method is that fails when a client is disconnected from the sync, but the symptoms are clear:

  • User and host both continue watching the video, but now there's no communication between the two. Play/pause has no effect on the disconnected one, and there's no position syncing.
  • The username may silently drop from the list of users in the room (needs more observation, but I suspect there's a delay here)
  • A refresh from the disconnected user is needed to regain the connection

Heartbeats are excellent in these cases:

  • If it's at X seconds, the host knows when a user has dropped to within at least X*2 (one lost is an anomaly, two is the beginning of a pattern)
  • If there is a confirmation returned, the client knows when their connection has been lost. This can resent a warning in the UI, as well as cause the client to start a reconnect attempt

In addition, the heartbeat can be used to relay timestamp sync data

And, to mitigate any problems:

  • If each heartbeat has a unique ID, accidental duplicates are not possible

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
2.0
  
To do
Development

No branches or pull requests

2 participants