Skip to content
This repository has been archived by the owner on Aug 25, 2021. It is now read-only.

Recover Jason state after reconnection (#47, #27) #100

Closed
wants to merge 37 commits into from

Conversation

evdokimovs
Copy link
Contributor

@evdokimovs evdokimovs commented May 6, 2020

Part of #47

Part of #27

Synopsis

When server tries to send an Event to a Web Client with closed RpcConnection Event wouldn't be sent or saved. In the current implementation, on sending Event with closed RpcConnection will be printed error log message.

Solution

Create observable Room snapshot at the Web Client side which will be updated by Media Server Events. When observable Room snapshot updates then real state should be updated. All updates will be performed only on this snapshot update. Events shouldn't update real state, but should update observable Room snapshot.

When Web Client reconnects to the server - server should send to the Web Client Event::RestoreState with a current Media Server's state. Web Client should set this snapshot
and based on this new snapshot, real state should be updated.

This PR implements only Web Client state restoring with Events which server should send but couldn't do it because lost RPC connection. Client's state restoring implementation will have minor changes in the next PR.

Checklist

  • Created PR:
    • In draft mode
    • Name contains Draft: prefix
    • Name contains issue reference
    • Has k:: labels applied
    • Has assignee
  • Documentation is updated (if required)
  • Tests are updated (if required)
  • Changes conform code style
  • CHANGELOG entry is added (if required)
  • FCM (final commit message) is posted
    • and approved
  • Review is completed and changes are approved
  • Before merge:
    • Milestone is set
    • PR's name and description are correct and up-to-date
    • Draft: prefix is removed
    • All temporary labels are removed

@evdokimovs evdokimovs added feature New feature or request k::api Related to API (application interface) labels May 6, 2020
@evdokimovs evdokimovs added this to the 0.2.0 milestone May 6, 2020
@evdokimovs evdokimovs self-assigned this May 6, 2020
@evdokimovs
Copy link
Contributor Author

FCM

Recover Jason state after reconnection (#100, #47, #27)

- add snapshot structures into medea-client-api-proto crate
- add observable snapshot structures into Jason
- implement client state restoring after RPC reconnection

Additionally:
- add observable collections to the medea-reactive crate

@evdokimovs evdokimovs changed the title WIP: Recover Web Client state after reconnection (#47, #27) WIP: Recover Jason state after reconnection (#47, #27) May 8, 2020
@evdokimovs evdokimovs marked this pull request as ready for review May 8, 2020 13:02
@evdokimovs evdokimovs requested a review from alexlapa May 8, 2020 13:02
alexlapa added 3 commits May 20, 2020 19:45
# Conflicts:
#	crates/medea-reactive/CHANGELOG.md
#	crates/medea-reactive/src/collections/hash_set.rs
@tyranron tyranron changed the title WIP: Recover Jason state after reconnection (#47, #27) Draft: Recover Jason state after reconnection (#47, #27) Aug 24, 2020
@tyranron tyranron force-pushed the master branch 5 times, most recently from 10e5ade to 39716ed Compare February 1, 2021 15:51
@alexlapa
Copy link
Collaborator

Resolved in #167

@alexlapa alexlapa closed this Mar 15, 2021
@alexlapa alexlapa deleted the 47-client-state-restoring branch March 15, 2021 11:49
@alexlapa alexlapa removed their request for review March 15, 2021 11:49
@alexlapa alexlapa added the obsolete This issue is not relevant anymore label Mar 15, 2021
@tyranron tyranron changed the title Draft: Recover Jason state after reconnection (#47, #27) Recover Jason state after reconnection (#47, #27) Mar 15, 2021
@tyranron tyranron added the wontfix This will not be worked on label Mar 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature New feature or request k::api Related to API (application interface) obsolete This issue is not relevant anymore wontfix This will not be worked on
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants