- Нова схема нумерації версій
- Зміна схеми ліцензування, зниження цін
- Голосові конференції в Android, Linux і macOS
- Повні списки людей у конференціях
- Перехоплення подій управління проектами Kanban у скриптах
- QR-коди в адмінці для швидкого входу в чат на мобільних пристроях
- Як заборонити підключення до сервера чату з Android чи iOS?
- Сервер став швидше, зменшено витрату трафіку
- Різні корисності
- Всі зміни загальним списком + історія розробки
- Як оновитися на останню версію?
1. Нова схема нумерації версій
Рішення назрівало довго, загальна схема схожа на ту, яку використовує компанія JetBrains. Простий приклад, як було, як стало, і чому стало краще :)
Було: версія 8.15.1.14. Мажорна версія 8, мінорна — 15, реліз номер 1, збірка 14. Про що це говорить звичайній людині? Напевно, ця версія краще, ніж 7.14, тому що це аж ціла 8-ма версія. І краще, ніж 8.14, тому що туди щось розробники накрутили, але не дуже багато, тому що перша цифра не змінилася.
Стало: 2023.1.0.17. Зліва-направо:
- 1 число — рік випуску;
- 2 число — номер версії в межах цього року;
- 3 число — номер мінорної версії, наприклад, технічний баг-фікс;
- 4 число — номер збірки, завжди збільшується, після нового року обнуляється.
Як мінімум, стало більш зрозуміло та впорядковано.
2. Зміна схеми ліцензування, зниження цін
У MyChat вже більше десяти років є система підписки на оновлення та технічну підтримку (з версії 4.15, випущеної в 2012 році). Це корисна та потрібна річ, яку цінують та використовують наші клієнти.
Починаючи з 2023 року, всі застарілі сервери, власники яких з тих чи інших причин не хочуть або не можуть їх оновлювати — не підтримуватимуться. Також для них буде відключено PUSH-повідомлення в Android/iOS-додатках.
Якщо на сервері немає актуальної підписки на оновлення, він не перестане працювати, але переключиться в режим "read-only", без можливості надсилання нових повідомлень. Історія та налаштування збережуться.
Якщо у вашій компанії прострочена підписка на оновлення MyChat — не біда, ви можете продовжити її за половину вартості до весни протягом січня і лютого 2023 року.
Не затягуйте, проконсультуйтесь з нашою службою підтримки.
3. Голосові конференції в Android, Linux і macOS
Ми запускаємо аудіо-конференції в бета-режимі, поки вони доступні для Android, Linux та macOS.
Почати груповий дзвінок можна з контекстного меню конференції (для десктопних клієнтів):
Або з меню списку користувачів у мобільному клієнті:
Одразу після початку дзвінка з'явиться панель керування, з якої можна завершити груповий дзвінок або просто відключитися від розмови. Груповий дзвінок завершується автоматично, коли з нього виходить останній учасник.
У чаті є повідомлення про те, що груповий дзвінок починається або закінчений:
На Android під час розмови можна бачити список всіх учасників групового дзвінка, чи у них увімкнено мікрофон і хто розмовляє в даний момент:
Щоб налаштувати, кому можна створювати, підключатися та закінчувати дзвінки — перейдіть в адмінку сервера, розділ управління групами прав. За замовчуванням права на конференц-дзвінки є у всіх користувачів MyChat.
4. Повні списки людей у конференціях
Це рішення назрівало вже декілька років. Багато наших клієнтів дивувалися, чому в конференціях видно лише онлайн-користувачів. Адже там є й інші співробітники, які підключаються туди автоматично або заходять самі, але зараз не в мережі.
Було б правильно бачити їх там, навіть якщо ці користувачі зараз офлайн. Адже вони побачать усі повідомлення, коли підключаться.
Причин, чому цього не було раніше, дві: особливості дизайну, що йде ще від IRC-систем та технічні складнощі, пов'язані з великим навантаженням на сервер, якщо конференцій багато, а людей, підключених до сервера — від кількох сотень і більше. Все ж таки MyChat — це система реального часу.
Тепер списки людей у конференціях виглядають так (Ctrl + /):
У нижній частині — офлайн-користувачі, сортування за абеткою, із сірим статусом. У верхній – онлайн-користувачі, сортування теж за абеткою, на першій позиції — завжди ви. Список людей автоматично коригується, коли змінюються статуси (офлайн/у мережі/не турбувати/не на місці).
Ми вже декілька місяців користуємося - стало краще :)
5. Перехоплення подій управління проектами Kanban у скриптах
Тепер можна "відловлювати" події на канбан-дошках і додавати туди свою логіку або просто "пригнічувати" їх, якщо потрібно.
Наприклад, надсилати повідомлення у свою CRM-систему, формувати email, писати додаткові протоколи тощо.
Опис подій та прикладів використання є в офіційній довідці.
6. QR-коди в адмінці для швидкого входу в чат на мобільних пристроях
До нас звернулися декілька клієнтів зі схожими проханнями. Суть така: адміністратор заводить на сервері користувачів, вони потім входять до системи та змінюють свої паролі згідно корпоративної політики безпеки. Подивитися їх паролі адміністратор не може (вони зберігаються в базі у вигляді хеш-функцій). А налаштувати мобільні програми треба.
Змушувати співробітників качати програми з маркетів, вводити адресу/порт сервера, свію обліковий запис і пароль, звичайно, можна. Або навчити їх сканувати QR-код у Windows-додатку. Але це не завжди можливо.
А ось зайти браузером у WEB-адмінку MyChat, розділ управління користувачами, і клікнути мишкою по кнопці QR-коду для співробітника можна завжди:
Він сам візьме до рук свій смартфон і все зробить. Адреси сервера (основний та резервний), порти, логін, пароль, пароль на підключення до сервера — все пропишеться автоматично.
Економія часу та нервів людей — очевидна.
7. Як заборонити підключення до сервера чату з Android чи iOS?
Оскільки за замовчуванням вхід на чат-сервер відкритий для всіх типів програм, користувачі можуть самі встановити програму на свій смартфон і увійти в чат, відсканувавши QR-код у MyChat Client для Windows, наприклад. Це зручно, але може створювати проблему вичерпання ліцензій.
Щоб дати адміністраторам більший контроль, ми зробили в правах груп користувачів на сервері додатковий розділ, в якому можна обмежити підключення до чат-сервера з різних операційних систем:
Це легше і швидше, ніж обмеження скриптами, як робили деякі наші клієнти у попередніх версіях MyChat. Хоча скриптами можна зробити більш гнучкі рішення, на кшталт обмеження часу і подібну складну логіку.
8. Сервер став швидше, зменшено витрату трафіку
Дуже часто багато змін не видно "зверху", але від них залежить стабільність і швидкість роботи системи в цілому. Тому майже 6 місяців займалися внутрішніми оптимізаціями сервера. Підсумок — більш ніж у 10 разів зменшився вихідний трафік сервера, особливо це помітно при великій кількості онлайн-користувачів та багатокористувацьких конференцій.
Ці технічні рішення також значно прискорили процес первинного логіну користувачів, особливо це помітно після перезапуску сервера в робочий час, коли всі співробітники онлайн. Навантаження на сервер у цих ситуаціях знижено у декілька разів.
Також впроваджено адаптивний час для перепідключення MyChat Client після розриву з'єднання:
- спочатку час реконнекту — 15 секунд, повторні невдалі спроби будуть робитися пізніше, на +10-15 секунд, щоб зняти навантаження з сервера, якщо коннект не відбувся саме з цієї причини.
- якщо клацнути на повідомленні — з'єднання відбувається миттєво (як у консольній команді connect), тайм-аут виставляється на 15 секунд, як на початку, якщо все пройшло нормально і зв'язок відновився;
- налаштування таймауту прибрано з клієнта, шаблонів налаштувань на сервері та ini-файлів налаштувань клієнта для експорту/імпорту
Багато команд для обміну даними між сервером і клієнтом оптимізовані, щоб зменшити їх фізичний розмір задля економії трафіку.
9. Різні корисності
У MyChat Client для iOS зробили відображення статусів користувачів ("в мережі", "офлайн", "не турбувати" та "не на місці").
У MyChat для Windows тепер можна відключати видимість вбудованого робота Elisa в конференціях, що створюються автоматично. Фізично робот все одно там є, але деяких людей він дратує :) Тому якщо треба — то можна це зробити в налаштуваннях клієнта:
В адмінці переробили рендерінг консольних команд та додали дещо корисне:
В Android-версії тепер можна відправляти файли і фотографії через системне меню "Поділитись".
10. Всі зміни загальним списком + історія розробки
Історія розробки версії з коментарями розробників
MyChat Client
[+] (iOS) у списку чатів додано відображення статусів користувачів;
[+] (win32) налаштування для відключення рендерингу вбудованого робота (Elisa, uin = 0) у списках користувачів конференцій чату;
[+] (win32) тепер у конференціях показується повний список людей, які входять до неї, а не лише онлайн-користувачі;
[+] (win32) фільтр користувачів у конференціях;
[+] (win32) типи сортувань користувачів у конференціях;
[+] (win32) ключ командного рядка mcclient.exe /minimize — згорнути вікно MyChat Client на панель завдань відразу після запуску;
[+] нова схема нумерації версій;
[+] (Android) у контекстному меню файлу додано пункт збереження файлу до папки "Завантаження";
[+] (iOS) додано можливість видалення облікового запису, якщо користувач має на це право.
[*] (win32) перероблена схема автоматичного перепідключення до сервера при розриві з'єднання;
[*] (win32) перероблений формат параметрів у командному рядку MyChat Client;
[*] (Android) повністю перероблена система роботи з файлами у додатку, тепер підтримується передача будь-яких файлів на нових операційних системах (Android 10+), вибір файлів та зображень тепер здійснюється через системний файловий менеджер, із переглядом вмісту, сортуванням та навігацією по папках;
[*] (iOS) доданий рендеринг деяких типів повідомлень;
[*] (iOS) розширене логування пуш-повідомлень для налагодження;
[-] (win32) виправлений витік пам'яті в процесі роботи програми, який іноді призводить до помилок після завершення роботи програми;
[-] (win32) якщо вибрати через головне меню "Довідка" пункт про встановлення програми для Android/iOS, то у важливих повідомленнях (Ctrl+4) пункт не підсвічувався. Виправлено;
[-] (win32) баг з подвійним кліком на діалогах (привати/конференції), фокус знімається і переходить кудись в інше місце, якщо в налаштуваннях відключене автоматичне закриття діалогів за допомогою double click. Виправлено.
[-] (Android) виправлено відправлення зображень через меню "Поділитися" з інших програм, також додана можливість надсилати таким чином файли будь-якого типу;
[-] (win32) якщо відкрити приват з користувачем, в налаштуваннях відключено зберігання повідомлень у локальній базі даних, повністю видалити приватну історію командою з сервера, а потім знову відкрити приват з цією ж людиною — повідомлення залишалися в пам'яті, індекси збивалися, ситуація виправлялася після реконнекту або перезавантаження програми. Виправлено;
[-] (Android) не відкривався діалог з Elisa із списку користувачів конференції. Виправлено;
[-] (Android) виправлено завантаження файлів, у назві яких є пробіли;
[-] (Android) при завантаженні файлу на сервер, у конференції не відображався процес завантаження та розрахунку контрольної суми. Виправлено;
[-] (Android) не працювало налаштування "Запускати MyChat після перезавантаження", якщо відключені PUSH-повідомлення. Виправлено;
[-] (iOS) неправильно працювало видалення повідомлень. Виправлено;
[-] (iOS) некоректно відправлялися символи "«" та "»". Виправлено;
[-] (iOS) іноді індикатор нових подій на панелі навігації показував неправильну кількість. Виправлено;
[-] виправлені витоки пам'яті під час роботи зі структурами даних;
[-] (Android) на деяких версіях Android не відбувався тест портів TURN-сервера, через що дзвінок не починався. Виправлено;
MyChat Server
[+] (Core) автоматичний перезапуск сервера через 30 секунд після виникнення будь-якої фатальної помилки зі збереженням протоколів;
[+] (Admin) консольна команда "list" для отримання повного списку всіх доступних консольних команд із короткими текстовими описами;
[+] (Admin) в управлінні користувачами, у профілі користувача та у списку онлайн-користувачів можна отримати QR-код для швидкого підключення до сервера за допомогою Android або iOS-додатку MyChat;
[+] функції MSL для обробки канбан-подій;
[+] можливість заблокувати підключення до сервера з різних операційних систем за групами прав;
[*] (Core) оптимізації сервера для прискорення роботи з конференціями, особливо якщо їх багато та з великою кількістю користувачів;
[*] (Admin) автоматичні відступи в текстовому полі для виведення консольних команд для кращого читання;
[-] помилка під час зміни типу авторизації користувача, якщо тип облікового запису — не доменний. Виправлено;
[-] (Admin) якщо не потрібно змінювати розмір зображення, при завантаженні фотографії в профілі користувача, не викликалась відправка фото на сервері. Исправлено;
[-] виправлені витоки пам'яті при роботі зі структурами даних;
[-] якщо видаляти повідомлення в конференції в адмінці під користувачем, який не знаходиться у зазначеній конференції, повідомлення видалялися на сервері, а на клієнти команда видалення не відправлялася, що призводило до розсинхронізації даних. Виправлено;
[-] виправлена помилка імпорту і оновлення користувачів із домену;
[-] якщо намагатися запросити користувача в конференцію, в котрій ви самі не знаходитесь, сервер відправляв невірне повідомлення про помилку. Виправлено.
11. Як оновитися на останню версію?
І комерційна, і безкоштовна версії оновлюються однаково. Спочатку оновлюється сервер, потім — клієнти. В цілому, в автоматичному режимі.