Найти тему
2 подписчика

Рисовалка с алгоритмами

Мне захотелось побаловаться с веб-сокетами и я придумал проектик, который накидал за вчера и финализировал сегодня:

Большой холст для (совместного) рисования. https://canvas.borisd.ru

Мысли были такие:
1. В простой реализации так можно нагенерить кучу трафика в веб-сокет (на каждое движение курсора)
2. Небольшой фронтенд челлендж по реализации холста и рисовалки (canvas)
3. Лишний раз можно попрактиковать concurrency и всякие паттерны в go
4. Можно попрактиковаться с профилировщиком

Внезапно, решил заиспользовать побитовые операции, чтобы уместить координаты + признак, что это непрерывная линия, в 4 байта. Узнал, что на фронте есть UintXArray и т.п.

Сейчас то, что рисуется на холсте, никуда не сохраняется, видно только то, что было нарисовано с момента входа на холст.
Нарисованные линии улетают в веб-сокет коннект, откуда они возвращаются обратно всем, кто также смотрит на холст. Таким образом, у всех участников картина одинаковая. Чтоб очистить холст, можно просто перезагрузить страницу.

Это открытый проект https://github.com/boryashkin/canvas, можно посмотреть на говкод (кхм кхм, это написано очень быстро).

Сейчас веб-сокет обрывается при неактивности, мне надо добавить пингалку в клиент.

Можно тут поиграть в крестики-нолики со мной (периодически буду заходить)
1 минута