У вас не будет пропускной способности для быстрой передачи всего изображения.
Вы вообще не хотите передавать изображение, поскольку, например, если вы рисуете обводку в области в то же время, что и другой человек, у вас не будет возможности согласовать два мазка в та же область.
Лучшее, что можно сделать, - это определить инструменты и захватить пользовательский ввод, а затем передать пользовательские действия с отметками времени, чтобы отслеживать, кто что сделал первым. Например, если вы используете инструмент «Перо» и перетаскиваете его по экрану, чтобы создать линию, вы захотите передать такую информацию, как:
- Пользователь
- Штамп с датой и временем
- Инструмент (ручка / кисть / и т. Д.)
- Цвет
- Массив точек от того места, где они начали, до места, где они прекратили рисовать
Это действие затем может быть воссоздано на другом клиенте (ах).
Если вы хотите сделать что-то подобное, сначала убедитесь, что вы делаете клиентский код / однопользовательский код. Если у вас еще нет приложения для рисования на холсте, не забегайте вперед с сетевой частью. Просто спроектируйте его так, чтобы каждое действие могло быть сведено к данным, как показано выше. Таким образом, у вас будут данные, необходимые для передачи и воспроизведения действия.