-
Notifications
You must be signed in to change notification settings - Fork 29
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
Stricter encapsulation of sync events #177
Comments
Mentioned the above issue to Brian in a meeting |
In order to solve this problem, 2 modifications need to occur. Each collaboration instance will need it's own bayeux channel for sync events. Currently there are 2 sync event channels with the following format. /session/sessionid/sync/app All collaboration instances in the session share the same sync channel. This is why all clients in the session receive all of the collaboration sync events. If each collaboration instance has it's own unique sync channel then the server will only send the sync events to those clients who are subscribed to that channel. The sync event channel should change to the following. /session/sessionid/collabid/sync/app Currently there is only one instance of the operation engine per session. All sync events are transformed even if there are no collaboration instances listening for them. If we create unique channel names for each collaboration instance, we will need to assign an operation engine to each collaboration instance. |
Hi Brian, |
There are some issues that are coming up with this solution, particularly on the server.
In order to implement this issue we end up writing a brand new server. This would be a huge risk for a small benefit. |
Version 0.8
In our use scenario,we want to insatiate one session per web application by calling
coweb.initSession();
And then within this single session, we may create 1 to 10's number of collaboration instances by calling
var collab1 = coweb.initCollab("someKey") //key is on per artifact basis
collab1.subscribeSync(id, this, "remotehandler")
Base on my observation, although open coweb client framework do not deliver syncevent for collab x to application that are not subscribe to collab1, the syncevent is delivered to all the web client that are in the same session.
This would cause the following issues
If a web client is not part of a collaboration instance, then server should not deliver the event to that client
The text was updated successfully, but these errors were encountered: