Create a joint whiteboard drawing application

I have my own in-place drawing program, with many drawing tools like Pen, Eraser, Rectangle, Circle, Select, Text, etc.

This is done with Python and wxPython. Each tool mentioned above is a class that has polymorphic methods like left_down (), mouse_motion (), hit_test (), etc. The program manages the list of all drawn shapes - when the user drew the shape, she added it to the list. It is also used to control undo / redo operations.

So, I have a decent code base in which I can connect a shared drawing. Each shape can be modified to know its owner - the user who drew it, and only allow delete / move / scale operations for figures belonging to one person.

I'm just wondering how best to develop this. One person in the "session" will have to act as a server, I do not have money to offer free central servers. Somehow, users need a way to connect to servers, which means some kind of browser "discover servers" ... or something like that. How to translate changes made to the application? Real-time drawing and message passing for each mouse movement event would be costly in terms of performance, and things get worse the more users there are at the moment.

Any ideas are welcome, I'm not too sure where to start by developing this (or even how to test it)

+5
1

/ . . , . , . . , ! , . , mouse_motion() [x, y] .

. . ; . , , /, :

, . , , . ( Undo .)

, :

  • .
  • IP-. (IP- : , , , ,...)

, , . :

+10

All Articles