-
Notifications
You must be signed in to change notification settings - Fork 98
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
Move Presence from Client to Document #536
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…nto presence-batch
…nto presence-batch
…nto presence-batch
…nto presence-batch
9 tasks
…nto presence-batch
09dd4d1
to
f0d778d
Compare
5e82b92
to
b36634e
Compare
b36634e
to
4a047a4
Compare
4a047a4
to
9cffaf6
Compare
f1db8b6
to
69a2b88
Compare
Codecov Report
@@ Coverage Diff @@
## main #536 +/- ##
===========================================
- Coverage 87.93% 16.90% -71.04%
===========================================
Files 79 80 +1
Lines 7807 7892 +85
Branches 780 805 +25
===========================================
- Hits 6865 1334 -5531
- Misses 627 6337 +5710
+ Partials 315 221 -94
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it?
Move Presence from Client to Document
Why?
yorkie-team/yorkie#442
presence
in text selection and drawing.1. Text.SelectionMap
Since
Text.SelectionMap
is used to represent the user's selection in Text, it is unnecessary to store the selection in the document. Therefore, I changed to handle selection throughpresence
instead of theText.SelectionMap
andselect operation
. (Related Issue: #366, #379)When the text selection is changed:
model → yorkie
Apply to model:
yorkie → model
remote-change
.doc.subscribe('peers')
.2. Drawing
In the drawing example, by sending the shape information as
presence
during mouse moveand storing it in the
document
during mouse up, we can reduce the document history.Previously, it was possible to send shape information as presence,
but due to the different timing of updates between presence and the document, there was a flickering issue.
With this PR, by moving the presence to the document, we can bundle document and presence changes into a single transaction, eliminating the flickering issue.
Additional changes
client.attach('docKey')
Instead of creating and attaching the document separately,
both operations are now handled in the
attach
method.initial presence
Instead of providing initial presence when creating the client,
the initial presence is now passed when creating the document.
subscribe peersChanged event
The
peers-changed
event has been moved from the client to the document.doc.getPeers()
Instead of retrieving peers from the client's perspective,
you can now get peers from the document.
What are the relevant tickets?
Fixes #366, Fixes #379
Related yorkie-team/yorkie#542
Checklist