ペン、消しゴム、長方形、円、選択、テキストなどのさまざまな「描画ツール」を使用して、独自の描画プログラムを用意しています。
Python と wxPython で作成されています。上記の各ツールはクラスであり、すべて left_down()、mouse_motion()、hit_test() などのポリモーフィック メソッドがあります。プログラムは、描画されたすべての形状のリストを管理します。ユーザーが形状を描画すると、それが追加されます。リストに。これは、取り消し/やり直し操作の管理にも使用されます。
そのため、共同描画をフックできる適切なコードベースがあります。各形状を変更して、その所有者 (それを描いたユーザー) を認識し、1 人のユーザーが所有する形状に対してのみ削除/移動/サイズ変更操作を実行できるようにすることができます。
これを開発する最善の方法を考えているだけです。「セッション」の 1 人がサーバーとして機能する必要があります。無料の中央サーバーを提供するお金がありません。どういうわけか、ユーザーはサーバーに接続する方法が必要になります。つまり、ある種の「サーバーを検出する」ブラウザ...または何かを意味します。アプリケーションに加えられた変更をブロードキャストするにはどうすればよいですか? リアルタイムで描画し、各マウス モーション イベントでメッセージをブロードキャストすると、パフォーマンスの面でコストがかかり、特定の時間に多くのユーザーがいるほど事態は悪化します。
任意のアイデアを歓迎します。これをどこから開発を開始すればよいか (またはテストする方法さえも) よくわかりません。