+7 499 649-49-52
info@prodmag.ru

Корзина
Оформить заказ

Личный кабинет
EN

 

Последние новости     Архив новостей

[2024-02-26] - MyChat 2024.2 — полная синхронизация истории и подгрузка сообщений

1. Полная синхронизация истории сообщений с сервера

Суть проблемы: мы установили MyChat Client на новый компьютер. История сообщений хранится на сервере, корпоративным мессенджером пользуемся несколько лет. Сообщений накоплено для нашей учётной записи — сотни тысяч. Как прочитать их в клиентском приложении, если локальная база данных истории — пуста?

Раньше история "подтягивалась" с сервера, когда мы открывали тот или иной приватный диалог или конференцию. Но не вся, а где-то около сотни последних сообщений для каждого из диалогов. И получалось так, что если приложение было удалено или установлено заново на "чистом" компьютере, то старая история за позапрошлый год была недоступна, её можно было увидеть только через админку сервера.

В версии 2024.2 теперь есть система полной синхронизации. Она работает в автоматическом режиме, специально делать ничего не надо. Как только вы открываете окно истории (Alt+H), MyChat Client решает, нужна синхронизация или нет. Если да, то программа вычисляет, что именно нужно (дельту), а затем в консоли показывается уведомление и прогресс.

Когда синхронизация закончится, окно истории откроется само. А пока с программой можно работать в обычном режиме, все функции доступны. Если вы были в отпуске, и синхронизировать нужно несколько сотен сообщений, что появились за это время, то переключения в консоль не будет, программа довольно быстро “дотянет” недостающие данные с сервера и откроет окно просмотра истории.

Скорость синхронизации зависит от многих факторов: количества и объёма сообщений, текущей загрузки сервера, скорости сети, производительности клиентского компьютера. Но программа пишет приблизительное оценочное время, сколько ещё нужно подождать до полного окончания. Обычно оно потом корректируется в сторону уменьшения. Например, в начале программа показала, что ей, вероятно, понадобится полчаса, а по факту весь процесс занял 6 минут. Это нормально, чем ближе к окончанию работы, тем точнее можно оценить скорость и время.

Процесс можно прервать: например, выйти из программы или выключить компьютер. Ничего страшного не случится, MyChat сам разберётся, на каком этапе его остановили и потом закончит работу при следующем запуске.

Надо учесть, что такая синхронизация может и не понадобиться, если вы просто будете открывать разные диалоги и читать там сообщения. Система кешей в MyChat настроена довольно хитро и постарается сократить обращения к серверу до минимума, чтобы получить максимум скорости и сэкономить трафик.

2. Подгрузка сообщений в чатах

Тоже своего рода синхронизация, но немного "с другой стороны". Все пользователи мобильных мессенджеров привыкли просто скроллить пальцем ленту сообщений внутри приложения, не задумываясь, откуда она берётся. Она как будто бесконечная.

Что-то похожее сделали и мы в MyChat для Windows. История может подтягиваться с сервера по сети, но обычно достаётся из локальной базы данных. Иногда, если кусков истории не хватает, они автоматически будут запрошены на сервере, а программа закеширует их в локальной зашифрованной базе.

Просто скроллим сообщения мышкой вверх (или Alt+Up / Alt+Home), и читаем хоть до самого начала.

Вся магия спрятана "под капотом". Как и должно быть.

3. Обработка UNC-ссылок и абсолютных путей в чате

Автоматически распознаются и рисуются синим ссылки типа "c:\temp\", "C:\tools\WiFi\nirsoft\WifiInfoView.exe", "\\192.168.10.13\public" и тому подобные.

Если кликнуть по UNC-ссылке, то запустится Проводник и попытается открыть эту ссылку по сети. Если же это ссылка на локальный каталог или файл, то чат проверит, существует ли указанный путь. Если нет — будет выдано специальное toast-уведомление.

Если путь существует — откроется Проводник. Если в пути ещё и был указан файл, то Проводник выделит его, чтобы пользователь имел возможность открыть или запустить файл, но уже самостоятельно. Это сделано из соображений безопасности, вдруг это исполняемый файл или какой-то скрипт.

Если локальный путь существует, а файл указан неверно, то Проводник всё равно откроется, но уже просто с папкой, без выделения конкретного файла.

4. Разное полезное

Консольная команда /mini теперь уменьшает размеры окна до минимума, но больше не переключается в консоль (вы же знаете, что консольные команды можно выполнять прямо в тексте чата, да?).

При клике на изображении или файле, который нужно скачать с сервера, а он уже удалён — программа не переключается в консоль для показа ошибки, чтобы не терять фокус и контекст, а показывает toast-уведомление.

Запись в протокол делается, как и раньше.

В Android и iOS-приложениях добавили настройку для оптимизации отправляемых изображений. Если настройка включена, то разрешение изображений уменьшается до FullHD (максимум 1920 пикселей по большей стороне). Размер уменьшается на 60-75%, фото быстрее отправляются и для получателя превью генерируется в разы быстрее.

5. Как обновиться на последнюю версию?

И коммерческая, и бесплатная версии обновляются одинаково. Сначала обновляется сервер, затем — клиенты. В основном, в автоматическом режиме.

Инструкция по обновлению MyChat