MyChat 8.13 — прискорення оновлень та новий OpenSSL

  1. Оновлення "схудли" в 4 рази
  2. Самий свіжий OpenSSL для шифрування трафіку
  3. Друкуємо чати на принтері та зберігаємо у файл
  4. MyChat + Active Directory = швидке оновлення без GPO
  5. Різні корисності
  6. Всі зміни загальним списком + історія розробки
  7. Як оновитися на останню версію?

1. Оновлення "схудли" в 4 рази


Дистрибутив MyChat Client під Windows тепер "важить" близько 17 мегабайт, проти 70 з лишком, як раніше. Це означає, що при оновленні сервера, якщо у вас безліч клієнтів, які підключені через інтернет каналами з різною швидкістю зв'язку, процес оновлення прискориться приблизно вчетверо.

Схуд пес

Магія полягає в тому, що ми розділили плагін для дзвінків і сам дистрибутив месенджера. Плагін, за потреби, завантажується з вашого сервера лише один раз, автоматично. Всі подальші оновлення, заново качати монолітний дистрибутив вже не треба. Процес встановлення, особливо на повільних комп'ютерах з HDD, також помітно прискорився.

Як зазвичай, все працює автоматично і нічого налаштовувати не треба.


2. Самий свіжий OpenSSL для шифрування трафіку


OpenSSL

Перейшли на OpenSSL 1.1.1 от 24 серпня 2021 року і TLSv1.3, відповідно. На жаль, на Windows XP та Windows Server 2003 шифрування працювати не буде і воно автоматично вимикається. Але, з іншого боку, чи не настав час уже закопати стюардесу? :)

Win XP MyChat

Нагадуємо, що шифрування трафіку динамічними сесійними ключами працює тільки в комерційній версії MyChat, у безплатній шифрування відключено.


3. Друкуємо чати на принтері та зберігаємо у файл


Друк тексту MyChat

Користувачі просили — ми зробили. Ctrl+P — друк вмісту вікна на принтері, Ctrl+S — експорт у файл (RTF чи HTML).

Зберігати чат у файл і друк на принтері можна заборонити правами на сервері, якщо потрібно.


4. MyChat + Active Directory = швидке оновлення без GPO


Задача №1: швидко встановити MyChat на кілька сотень комп'ютерів у Active Directory через GPO.

Рішення: MSI пакет, прозора авторизація, імпорт користувачів з домену. Все ок.

Задача №2: швидко оновити MyChat, встановлений у домені. На тих же кількох сотнях комп'ютерів.

Рішення:: не все так однозначно :(

Чому так виходить? По-перше, якщо MyChat Client встановлений пакетом MSI, то встановлений він у Program Files, а у звичайних користувачів туди доступ закритий, із зрозумілих причин. Отже, система автоматичного оновлення, вбудована в MyChat, не працюватиме.

Ставили MSI — оновлюємо також за допомогою MSI через групові політики домену.

Отримуємо другу незручність: для оновлення MyChat через GPO потрібно, щоб користувач перезавантажився або зробив logoff/logon у Windows. Інакше нові політики не застосовуються і месенджер не оновиться. Це штатна процедура Microsoft, але вона незручна через те, що в середині робочого дня апдейт не накотиш, а люди сидітимуть без робочого чату.

Як ми вирішили ці проблеми?

Переробили пакет MSI, тепер він ставиться у профіль Windows-користувача, а не в папку Program Files. "Підкрутили" і MyChat Client, щоб він включав автоматичне оновлення прямо з сервера при виході нової версії. Разом з "схудлим" інсталятором виходить подвійний профіт: автоматичне оновлення клієнта прямо з сервера MyChat у будь-який момент часу + швидке завантаження та встановлення пакета оновлень.


5. Різні корисності


Прискорено запуск програми, зроблено редизайн тулбару в приватах та конференціях, змінено розміри елементів для зручності використання.

У Android-програмі доданий екран перегляду розташування користувача, якщо для цього є права:

MyChat Android локація

В інформаційній панелі про користувача в приваті, якщо дані множинні (IP, MAC, HardwareID, CompName, ClientVersion), вони пишуться з нового рядка і перед даними вказується тип програми (win32, android, iOS, web, linux, macOS) :

Інформаційна панель MyChat

Також зменшено навантаження на сервер при підключенні користувачів після рестарту сервера або масовому підключенні відразу після запуску. Ефект помітний, якщо користувачів є кілька сотень або більше.

6. Всі зміни загальним списком + історія розробки


Історія розробки версії з коментарями розробників

MyChat Client

[+] збереження тексту чата в файл;
[+] друк тексту чата на принтері;
[+] (Android) доданий екран перегляду місцезнаходження користувача, якщо для цього є права;

[*] якщо локальна ОС дуже стара (Windows XP/2000/2003), то буде автоматично вимикатись шифрування. Також MyChat Client буде працювати з WEB-сервером по HTTP по окремому порту для завантаження оновлень і обміну файлами. Номер цього порта налаштовується на сервері MyChat;
[*] (MSI) пакетні установлювачі MSI тепер будуть інсталювати файли в профіль користувача, а не в Program Files, для того, щоб працювала вбудована система автоматичного оновлення;
[*] размір дистрибутива MyChat Client зменшився у рази за рахунок плагіну дзвінків. Плагін тепер завантажується, при необхідності, з сервера;
[*] контекстне меню "Оновити" в правій частині вікна інформації про користувача, якщо потрібно буде переглянути свіжі дані, не чекаючи оновлення кешу; [*] в інформаційній панелі про користувача в приваті, якщо дані множинні (IP, MAC, HardwareID, CompName, ClientVersion), вони пишуться з нового рядка і перед даними вказується тип додатку (win32, android, ios, web. linux, macos); [*] (Android) редизайн тулбару в приватах і конференціях, змінені розміри елементів для зручності користування;
[*] автоматичний вхід на вбудований форму за токеном, якщо користувач клікнув за посиланням у чаті, і це посилання на який-небудь топік форуму;

[-] не завжди оновлювалась інформація про користувача в приваті, відповідно до списку вказаних констант (Ctrl+/). Виправлено;
[-] (Android) прискорений запуск додатка;
[-] (Android) при перегляді чи створенні сповіщення за натиском на файл, він не відкривався у асоційованому додатку. Виправлено;
[-] якщо в чат відправити текст повідомлення, що містять одне інтернет-посилання, але без префікса, наприклад, allsoft.by або google.com, то за кліком на це посилання відкривався Провідник, а не браузер. Виправлено;
[-] помилка ID C3678FE9 (List Index out of bounds (-1)) за кліком на дошці оголошень;
[-] (Android) у списку серверів тест підключення до актуальної версії показував помилку про несумісність. Виправлено;

MyChat Server

[+] налаштування для увімкнення/вимкнення вікна профілю користувача (Ctrl+/) в шаблоні налаштувань на сервері;

[*] підтримка нової бібліотеки шифрування OpenSSL 1.1.1k 25 Mar 2021 і TLSv1.3 за умовчуванням;
[*] знижене навантаження на сервер при підключенні користувачів після рестарту сервера або масовому підключенні одразу після запуску;

[-] (Admin) при вимкненні прав доступу до перегляду протоколів у інструменті для перегляду протоколів відображались заборонені розділи. Виправлено;
[-] у вікні перегляду онлайн-користувачів навпроти ios-клієнтів показувалось, що шифрування не використовується. Виправлено.

7. Як оновитися на останню версію?


І комерційна, і безкоштовна версії оновлюються однаково. Спочатку оновлюється сервер, потім — клієнти. В цілому, в автоматичному режимі.

Інструкція щодо оновлення MyChat

Служба поддержки