2 подписчика
Рисовалка с алгоритмами
Мне захотелось побаловаться с веб-сокетами и я придумал проектик, который накидал за вчера и финализировал сегодня:
Большой холст для (совместного) рисования. https://canvas.borisd.ru
Мысли были такие:
1. В простой реализации так можно нагенерить кучу трафика в веб-сокет (на каждое движение курсора)
2. Небольшой фронтенд челлендж по реализации холста и рисовалки (canvas)
3. Лишний раз можно попрактиковать concurrency и всякие паттерны в go
4. Можно попрактиковаться с профилировщиком
Внезапно, решил заиспользовать побитовые операции, чтобы уместить координаты + признак, что это непрерывная линия, в 4 байта. Узнал, что на фронте есть UintXArray и т.п.
Сейчас то, что рисуется на холсте, никуда не сохраняется, видно только то, что было нарисовано с момента входа на холст.
Нарисованные линии улетают в веб-сокет коннект, откуда они возвращаются обратно всем, кто также смотрит на холст. Таким образом, у всех участников картина одинаковая. Чтоб очистить холст, можно просто перезагрузить страницу.
Это открытый проект https://github.com/boryashkin/canvas, можно посмотреть на говкод (кхм кхм, это написано очень быстро).
Сейчас веб-сокет обрывается при неактивности, мне надо добавить пингалку в клиент.
Можно тут поиграть в крестики-нолики со мной (периодически буду заходить)
1 минута
1 августа 2023