Ответ на комментарий от Andrew Lobanov
vit01>> Клиент занимается парсингом цитат, блоков кода, подсветки и так далее. Построчно, на регулярных выражениях. И не забывай, что sqlite не очень шустрый, особенно на мобилках. Чтобы грузить все сообщения мгновенно, придётся грузить их все фоном в ОЗУ (потребление вырастет очень сильно), и для сообщений каждое в мегабайт 20-30 обход регулярными выражениями - вещь крайне печальная. CutieFeed делает синхронные запросы в базу, а IDEC Mobile - заранее, опережая пользователя на одно сообщение. Но, тем не менее, репарсинг и рендеринг в HTML заставляет и его на больших сообщениях подтормаживать.
vit01>> Насчёт урона тысячи сообщений по десятку байт. Больше опасаюсь, что спамеры будут слать тысячи сообщений по десятку мегабайт, а не байт.
AL> Парсинг штука тяжёлая, но зачем обходить текст построчно, если рендеришь регулярками и в html?Цитаты съедаются регулярками, а вот блоки кода и превьюшки для режима чтения, где цитирование съедается - построчно.
Кстати, этот алгоритм я у тебя позаимствовал откуда-то
vit01>> Просто если я вижу, что клиент начал скачивать 10 000 сообщений, то сразу же могу прибить клиент (отказаться от получения), потому что знаю, что каждое из этих сообщений не превышает 64 килобайта. Если приходит 100 сообщений каждое размером до 10-20 мегабайт, то ты плохо понимаешь, что там внутри. И обнаруживаешь, что клиент жрёт гигабайты трафика, уже ПОСЛЕ того, как эти сообщения скачал. Это утеря контроля пользователя над своим трафиком и над своими ресурсами.
AL> Это гипотетические рассуждения или ты действительно ловил такой спам?Насчёт 10 000 сообщений это было тогда, когда по невнимательности я решил скачать содержимое всех эх целиком.
А так да, гипотетически. Ведь если дать возможность юзерам лепить огромные сообщения, то ей обязательно будут пользоваться. Кто-нибудь возьмёт и решит, что это невероятно прикольно взять 5-мегабайтную картинку, закодировать её в base64 и прилепить к своему сообщению. И всем остальным потом это скачивать (особенно через мобильный интернет).
AL> Опять таки: давай попробуем это реализовать в тестовом режиме и посмотрим сколько спама будет сыпаться? Не умозрительно, а именно в реальных условиях.Спам - это всегда человеческий фактор. Когда нас здесь 5 человек, мы можем развлекаться как хотим и не задумываться о том, к чему это может привести.
Вот я сейчас написал выше про картинки в base64 и наверняка отпугнул людей от того, чтобы проделать такое в реале :)
Поэтому смысла особого нет, но вместо этого можно провести стресс-тест на тестовой ноде.
AL> Реальной пользы от этого ограничения нет. Только теоретическая.Лимит какой-нибудь всё равно должен быть. Какое-то разумное, но при этом конечное число.
+++ Отправлено через IDEC Mobile +++ GNU/Linux, Android, physics, MLP:FIM
vit01 (2019-01-24 18:41:22)
[Ответить]