-
Notifications
You must be signed in to change notification settings - Fork 0
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
LX-306 Collaborative mapping, with edits locked to one user #310
LX-306 Collaborative mapping, with edits locked to one user #310
Conversation
…atement in MapActions.js
This is looking really great team! I think there are a few little bits that might be a bit confusing for people, but overall the behaviour looks correct to me and I think this is ready to go out into the wild!! I'll do a little more testing mocking a flakey connection and then I think we are good to go. |
Spent a chunk of time this morn testing a browser going online and offline while editing. Everything worked exactly as expected. II played with three different sessions interacting with the same map. I'm happy to move this one into release mode :) |
What? Why?
Closes #306, #307 and #308
This PR adds the following functionality:
In order to achieve the two-way messaging required for map locking, we have created a WebSocket architecture. This diagram shows the different WS messaging flows that have been implemented.
What should we test?
Test the behaviour described above. e.g.
Release notes
Deployment notes
When deploying on prod:
staging.app.landexplorer.coop-le-ssl.conf
Apache2 conf file needs to be updated on the server to handle websocket connections - copy this over from the staging server.sudo a2enmod proxy_wstunnel
ROOT_URL
in the front-end repoconfig/.env
needs to be fixed, to remove the/api
suffix. This was configured incorrectly, so up till now, API request URLs have contained a duplicate/api
segment, e.g.https://staging.app.landexplorer.coop/api/api/user/map/view
. This didn't work when using Socket.IO since it impacts the namespace functionality. Note that there is also a tweak to the\api
part ofstaging.app.landexplorer.coop-le-ssl.conf
to reflect this.Documentation updates
There is a Wiki here which outlines our strategic direction for simultaneous map edits (with locking) https://github.com/DigitalCommons/land-explorer-front-end/wiki/Strategic-Direction#simultaneous-map-editing
Not that we also didn't include unit tests as part of this work due to budget constraints. We need proper unit testing for any future work in this area, since it's complex and there is a high risk of bugs.