ВНИМАНИЕ: я не знаю, был ли этот способ уже одобрен другими людьми или нет, и я не знаю, хорош ли этот способ и оптимизируется он или нет.
Но я делюсь своими идеями
Лучший способ реализовать ProfilePicture для онлайн-приложений
Добро пожаловать
Сначала давайте поговорим о ProfilePicture, ProfilePicture — это символ пользователя, это может быть реальная фотография, аниме или три фотографии,
ProfilePicture — это настоящая игла для онлайн-приложений, но это опасно, когда у вашего приложения много пользователей.
Режим разработчика:
Все разработчики знают, что опция ProfilePicture требует больших ресурсов программного обеспечения, потому что вскоре многие люди увидят другое изображение профиля, и сервер умрет.
Теперь проверим пути
Режим по умолчанию:
Пользователь_1 загрузил изображение своего профиля с идентификатором: 1.png
Теперь, когда User_2 отправляет http-запрос для получения информации о пользователе, ответ по умолчанию выглядит примерно так:
{ "Username": "Amir1387aht", "State": "online", "ProfilePicture": "1.png" }
Хорошо, вы можете увидеть данные json, содержащиеся с именем пользователя, состоянием и ProfilePicture, затем clinet загружает ProfilePicture по умолчанию,
Теперь, когда 1 миллион пользователей загрузит это изображение профиля, что произойдет?
Это избыточная работа, которая создает большую нагрузку на сервер.
Моя идея:
- Пользователь_1:
ОК, когда Пользователь_1 хочет загрузить изображение профиля,
Мы делаем уникальный и случайный идентификатор для загруженного изображения
Как? Видеть это
92jrSudh8382y.png
Это просто случайный идентификатор изображения, и мы загружаем его на сервер.
- Пользователь_2:
Теперь, когда User_2 хочет получить информацию, отправьте запрос и ответ:
{ "Username": "Amir1387aht", "State": "online", "ProfilePicture": "92jrSudh8382y.png" }
Теперь, когда User_2 получает этот ответ,
ПРИЛОЖЕНИЕ проверяет, существует ли изображение с этим идентификатором на устройстве или нет?
- Если да, использует сохраненное изображение
- Если нет, сохраняет изображение на устройстве и использует его
Результаты и объяснение:
Каждый раз, когда Пользователь_2 загружает изображение, приложение сохраняет его и использует, теперь, когда
User_1 устанавливает новый ProfilePicture, приложение создает новый идентификатор и загружает его на сервер, теперь снова, когда User_2 хочет видеть User_1 ProfilePicture,
Приложение получает идентификатор, если оно загружено заранее, использует его, а если нет, загружает новый ProfilePicture.
С помощью этой системы вы избавитесь от лишней работы и уменьшите количество запросов.