2 Maxim MirgorodskyКогда, пользователь чата пытается подключиться на следующее утро к чату, клиент - получив уведомление об изменившемся смайл-паке и не найдя его на клиентской машине, пытается загрузить "вчерашний" смайл-пак, тот который использовался в чате вчера, тогда подключившись к чату - пользователь будет видеть отсылаемые смайлы пользователями и шапки в каналах, но при попытке отправить самому смайл "увидит" стандартное сообщение с ссылкой и рекомендацией скачать новый смайл-пак.
А если в новом смайл-паке поменялись коды? Текущая система имеет огромный плюс: при ее использовании абсолютно у всех клиентов подключенных к серверу смайлы отображаются одинаково. Если же реализовать Ваше предложение, система этого плюса лишится.
Хороший вопрос, на который есть хороший ответ... - если у человека "кривые" руки, то можно и на машине за пол миллиона долларов в столб въехать.
Если честно, я не понял о каком "плюсе" здесь идёт речь - вижу лишь достаточно большой минус... - я не предлагаю пользоваться старым смайл-паком, если на сервере появился новый, а лишь "подгрузить" старый смайл-пак, на время загрузки клиента чата во время его запуска. Всё остальное действует по схеме, при входе в чат - пользователю предлагается скачать новый смайл-пак.
В кэше пользователя достаточно места для нескольких смайл-паков, поэтому потерь от такой схемы никаких не будет, если руки растут из того места от куда они и должны, то не будет и никаких недоразумений.
По сути, я предлагаю схему - идентичную той при которой пользователь во время изменения смайл-пака не выходит из чата, - другими словами допустим сидите вы вечером в чате, в это время на сервере меняется смайл-пак и сервер перезагружается, вы видите старые смайлы, видите приветсвия в каналах, но при этом доступны уже новые. Схема точ в точ, один к одному.
Поэтому я не вижу упорства в её реализации, кто не хочет - тот и "не пользуется", изменения минимальны - надо лишь добавить пару строк кода. Реализовать можно по разному, либо хранить название последнего используемого пакета на стороне клиента в ini или каком либо другом файле, либо сделать так, чтобы сервер с передачей хеш кода нового смайл-пака, передавал и код старого, что будет гораздо вернее.