2D drawing application based on Sketch featuring real-time collaborative editing.
./gradlew :client:run
./gradlew :server:run
./gradlew :testclient:run --console=plain
The protocol is defined by a specification and has a default Java implementation. To create additional events and requests, both need to be updated:
- Add the new declaration to Protocol.md
- Navigate to the
shared
module - For a request:
- Add the request name to
RequestName
- Subclass
Request
- Add a new method referencing the subclass to
WhiteboardServer
- Add the request name to
- For an event:
- Add the event name to
EventName
- Subclass
Event
- Add a new method referencing the subclass to
WhiteboardClient
- Add the event name to
- Inside the new subclass:
- Implement the necessary fields (matching the protocol declaration)
- Add a protected no-argument-constructor (for Gson)
- Add a public constructor initializing all fields (including those in superclasses)
- Add public getters for all added fields
- Implement toString
- Update
MessageDeserializer
- Update the
LocalWhiteboardServer
/LocalWhiteboardClient
implementation