UniChat — это небольшой бесплатный чат для локальных сетей. Умеет работать без сервера, только в локальной сети (intranet) по протоколу UDP, используя широковещательные пакеты, а также с сервером Intranet Chat, по TCP. В этом случае можно подключить людей из нескольких подсетей или через интернет. С сервером программа работает стабильнее.
К сожалению, разработка UniChat остановлена, официальный сайт не работает, а автор отдал исходные тексты в публичное пользование, однако свежие версии так и не появились.
В Юничате есть любопытные решения вроде автоматической перекодировки текста, набранного в неправильной раскладке (эту задачу сейчас хорошо решает Punto Switcher) или текстовые команды для управления работой программы вроде /topic, /join или /whois.
Программа бесплатна, но требует активации. Схема активации похожа на "donateware". Чтобы активировать, нужно ввести имя "UniChat" и ключ "forever freeware". Можно перечислить символическую сумму автору на WebMoney-кошёлек. Правда, чтобы пункт активации исчез из главного меню, UniChat необходимо перезапустить (Alt+X).
Обзор написан для последней доступной версии UniChat 1.45.0.244 от 3 марта 2006 года. Сравниваем с бесплатным офисным чатом MyChat версии 7.7 от 21 августа 2019 года. Рассказываем про ошибки и проблемы Юничата и объясняем, почему стоит перейти на мессенджер MyChat.
- Краткий обзор проблем UniChat
- Сравнение UniChat и чата для командной работы MyChat
- Рекомендации по переходу на MyChat
1. Краткий обзор проблем UniChat
Отсутствие поддержки национальных символов (UNICODE), нет цифровой подписи, глюки интерфейса, недостатки технологии, технические ограничения и ошибки, которые уже никогда не будут исправлены, потому что разработка проекта остановилась. Иными словами, стандартный ворох проблем большинства заброшенных проектов.
Итак, поехали.
1.1. Нет инсталлятора, нет цифровой подписи
Я не знаю, почему автор UniChat решил не делать установщик. С одной стороны, это удобно, потому что все настройки программа хранит в реестре, в папке \Scripts есть bat-файлы (SaveSettings.bat и RestoreSettings.bat) для сохранения и выгрузки настроек программы, а значит, можно один раз подготовить reg-файл с шаблоном опций, а потом загружать его в реестр всем пользователям, вручную или через GPO.
С другой стороны, MSI пакета нет, в домене чат не развернуть. Обычного установщика тоже нет, а значит, любые движения по автоматизации процесса инсталляции придётся делать самостоятельно, выдумывая очередной "велосипед".
У самого исполняемого модуля unichat.exe нет цифровой подписи:
Это плохо, потому что во многих компаниях установка любого software без digital signature запрещена политикой безопасности. Плюс на такие программы многие антивирусы "смотрят косо".
1.2. Проблемы с UNICODE
Программа не работает с национальными символами UNICODE, отправляя такие сообщения, программа их "ломает", превращая в знаки вопроса. Иероглифы нам, конечно, не так близки, однако то же самое будет с немецким, польским и испанским языками:
Это странно, потому что компонент TRichView, который использует UniChat, умеет работать с юникодом.
Если скопировать текст из окна с сообщениями с помощью контекстного меню "Скопировать всё":
… то в Блокнот вставляется вот такое:
Причём, если выделить мышкой кусочек текста ("Ctrl+C" не работает, программа мгновенно копирует выделенный фрагмент в буфер обмена), то его можно вставить в другие программы в нормальном виде, кодировка не корежится.
1.3. Потеря пользователей, проблемы широковещания
Пользователи исчезают из общего списка в произвольные моменты времени, хотя находятся онлайн. В общем и целом — это проблема используемой технологии широковещания, когда приложение одновременно и сервер, и клиент. И при каждом "чихе" оно вынуждено транслировать одинаковые пакеты через UDP на всю сеть, а не конкретному компьютеру.
Поскольку нет центрального сервера, то некому надёжно следить за наличием людей онлайн, а также заниматься доставкой сообщений.
Стоит сказать, что UniChat умеет работать с бесплатным сервером Intranet Chat (стандартный TCP порт 6666), для этого в настройках программы можно указать адрес сервера и программа будет соединяться на него. Но проблемы все равно останутся, но уже немного другие.
В этом случае у вас получится объединить несколько разных сегментов сетей и даже подключить людей через интернет, если есть внешний IP адрес. Ни о каком шифровании сообщений, конечно, речь не идёт, но всё же это лучше, чем постоянный broadcast трафик внутри локальной сети.
Однако, если соединение с сервером по каким-либо причинам прервалось, то все сообщения, которые вы будете набирать и отправлять — будут потеряны, программа просто их "проглатывает" и игнорирует:
По умолчанию настройка перехода на широковещание при отсутствии сервера отключена, поэтому чат показывает сообщение, что сервера нет, обещает попробовать снова через 3 секунды, но останавливается и не продолжает.
Если коннект появится, программа уже не вернется на сервер, повторная попытка соединения произойдёт только после перезапуска Юничата.
Из всего этого можно сделать вывод, что поддержка сервера — экспериментальная возможность, и автор не ставил эту технологию во главу угла при разработке. Отсюда и недоработки.
1.4. Ошибки в интерфейсе Юничата
Довольно обширный раздел ошибок и недоработок. Перечислим основные, что сразу "бросаются в глаза".
Многострочные сообщения не работают, программа удаляет переводы строк и соединяет весь текст в одну строку:
Это странно, потому что многострочные сообщения есть в доске объявлений, их можно добавить по Ctrl+Enter или просто вставив текст "\n" для перевода строки. Большие сообщения программа "обрезает" без уведомлений и отправляет только кусок, игнорируя остальной текст.
"Послать ссылку" на файл не работает:
Во многих окнах текст заголовка не влезает и приходится догадываться, что там написано:
Если вызвать диалоговое окно, а потом нажать "Alt", то кнопки "Ок" и "Cancel" (почему-то не переведённые на русский язык) исчезают и уже не появляются:
Это происходит во всех окнах:
Причём, если вызвать окно с клавиатуры (комбинации клавиш есть не для всех окон программы), то всё Ок, проблемы только при работе с помощью мышки.
Поиск сообщений в архиве не работает, если начать набирать что-то, в окне показывается абракадабра:
Это было слово "привет".
Если зайти в первую по счёту конференцию ("Основной") и через главное меню выбрать "Покинуть текущий канал" (Shift+F4), программа завершит свою работу. Неожиданное поведение.
Если выставить режим "Ушёл" или какой-либо другой, то после перезапуска программы UniChat остаётся с тем же режимом, и не переключается в "Активен". Это очевидная недоработка, потому что человек может элементарно забыть переключить режим работы обратно и остаться в статусе "Не беспокоить" или "Отключен" навсегда.
На доске объявлений нельзя разместить несколько объявлений от одного и того же человека, текст объявления сразу же меняется на новое сообщение, даже если вы напишете его спустя какое-то время, а не в ту же минуту:
Причем, если нажать Enter, не написав ничего, текст вашего объявления будет мгновенно удалён.
Если открыть диалог с кем-нибудь, а затем на другой стороне закрыть его, то в чате покажется, что беседа закончена. Но возобновить диалог не получается, сообщения уходят в никуда:
В приложении на скриншоте слева я пишу и отправляю сообщения, справа – никаких уведомлений про это.
Многоадресное сообщение можно отправить самому себе:
Если закрыть приложение, а потом заново запустить и открыть разговор с человеком, в надежде продолжить беседу, мы увидим пустое окно:
История не подчитывается в окно диалога, более того, её нельзя увидеть вообще никак, кнопка F3 не работает. А всё потому, что приватные диалоги по умолчанию не протоколируются. Но это можно включить в настройках, после чего история будет записываться в текстовый файл в папке "\Logs" рядом с unichat.exe.
Встроенный плагин "АнтиКАПС" для исходящего текста не работает:
1.5. Проблемы в терминале и невозможность запуска двух копий Юничата
Во-первых, UniChat не работает в терминальных сессиях. Он работает на одном и том же UDP порту, и копии программы будут блокировать друг друга.
Казалось бы, использовать сервер IChat, соединяться с ним по TCP — и проблема решена. Но нет.
Нельзя запустить два приложения unichat.exe, даже из разных папок или под разными пользователями. Если приложение запускается повторно, то предыдущая копия не активируется, просто игнорируется запуск. В логах никакого уведомления про это нет.
1.6. Логи пишутся в папку с программой
Формально, это не есть проблема, потому что та версия, которую можно найти в интернете — по сути, portable-вариант. Логично, что протоколы работы и история пишутся в ту же папку, куда установлена программа (\Logs\).
Но проблема в том, что логи никак не разделяются, всё валится вперемешку. Не важно, под каким мы пользователем работаем, к какому серверу подключаемся.
Всё пишется в открытом виде, в одни и те же текстовые файлы в кодировке win1251 (UNICODE не поддерживается).
Правильно было бы либо разрешить менять папку с логами в настройках, а совсем правильно — писать протоколы в локальный профиль Windows-пользователя. Это дало бы возможность не смешивать протоколы работы для разных пользователей компьютера.
1.7. Нет уведомлений о новых сообщениях
Программа не умеет сигнализировать о том, что есть свежие непрочитанные сообщения. Да, иконка в трее мигает, но в Windows 7 и старше она может быть автоматически скрыта, а индикатор Scroll Lock есть далеко не на всех современных клавиатурах (UniChat умеет мигать этим индикатором, включается в настройках). Всплывающих окошек-уведомлений в трее нет.
Если программа открыта, например, на закладке "Основной", а вам написал человек в приватном диалоге, то вы об этом не узнаете, программа визуально никак этого не показывает, нужно зайти в закладку и посмотреть, не появилось ли там новых сообщений:
Даже если включить настройку выведения окна на панель задач, программа не мигает этой кнопкой, если есть новые входящие сообщения:
1.8. Проблемы с безопасностью
Поскольку в UniChat нет системы прав и ограничений, которая настраивается и управляется с сервера (интеграция с IChat не в счёт, она в зачаточном состоянии), то любой пользователь может получить конфиденциальные данные других людей. Прослушивая трафик снифером или просто включив нужную настройку в самой программе:
Можно узнать заголовок активного окна, Windows-логин пользователя, IP адрес удалённого компьютера, его NetBIOS имя, версию операционной системы и даже количество оперативной памяти. Правда, справедливости ради надо отметить, что программа определяет последний параметр неправильно.
Из-за того, что в чате используется UDP широковещание, данные транслируются на всю сеть, а не только конкретному адресату. Следовательно, сообщение может попасть в чужие руки.
Вся переписка также не шифруется и хранится в открытом виде в папке \Logs\ в текстовых файлах.
2. Сравнение UniChat и чата для командной работы MyChat
В таблице сравниваем базовые возможности UniChat версии 1.45.0.244 от 3 марта 2006 года и MyChat 7.7 (бесплатной версии) от 21 августа 2019 года.
№ | Возможность | UniChat | MyChat |
---|---|---|---|
Установка, удаление и обновление | |||
1.1 | Инсталлятор | Нет | Есть |
1.2 | Деинсталлятор | Нет | Есть |
1.3 | Автоматическая установка | Нет | Есть |
1.4 | Система автоматического обновления | Нет | Есть |
1.5 | Автоматическое обновление и сохранение всех данных при установке самой "свежей" поверху старой | Нет, новых версий нет | Есть |
1.6 | Portable версия | Есть, только она | Есть |
Сетевые возможности | |||
2.1 | Работа в больших сетях | Есть, через IChat | Есть |
2.2 | Работа в сложных сетях и через Интернет | Есть, через IChat | Есть |
2.3 | Гарантированная доставка сообщений | Нет | Есть |
2.4 | Работа в терминальных сессиях | Нет | Есть |
2.5 | Шифрование трафика | Только конференции, нужно вводить ключ | OpenSSL |
2.6 | Работа в очень плохих сетях (спутниковая связь, "длинные" пинги) | Нет | Есть |
Стандартные функции | |||
3.1 | Персональные сообщения | Есть | Есть |
3.2 | Статусы сообщений (получено, прочитано) | Нет | Есть |
3.3 | Текстовые конференции | Есть | Есть |
3.4 | Оповещения с контролем прочтения | Есть, без контроля | Есть |
3.5 | Общая доска объявлений | Есть | Есть |
3.6 | Обмен файлами | Нет | Есть |
3.7 | Передача изображений | Нет | Есть |
3.8 | Автоматическая подсветка линков в тексте | Частично | Есть |
3.9 | Просмотр истории сообщений | Частично, только личные | Есть |
3.10 | Звуковое информирование о событиях | Есть | Есть |
3.11 | Личный список контактов | Нет | Есть |
3.12 | Отправка сообщений и файлов пользователям, которых нет в сети | Нет | Есть |
3.13 | Графические смайлики | Есть, статичные | Есть |
3.14 | Голосовые звонки | Нет | Есть |
3.15 | Видео звонки | Нет | Есть |
3.16 | Демонстрация экрана | Нет | Есть |
Интеграция с Active Directory | |||
4.1 | MSI пакет для разворачивания через групповые политики | Нет | Есть |
4.2 | Прозрачная авторизация пользователей | Нет | Есть |
4.3 | Импорт пользователей из Windows-домена | Нет | Есть |
4.4 | Поддержка любого количества разных доменов | Нет | Есть |
4.5 | Совместная работа "обычных" и доменных пользователей | Нет | Есть |
Настройка внешнего вида | |||
5.1 | Языки интерфейса | Нет | Есть, UNICODE |
5.2 | Кастомизация внешнего вида | Есть | Есть |
5.3 | Изменение шрифтов | Есть | Есть |
Администрирование | |||
6.1 | Централизованная настройка прав и ограничений пользователей | Нет | Есть |
6.2 | Группы пользователей | Нет | Есть | 6.3 | Фильтры "плохих" слов | Есть | Есть |
6.4 | Фильтры по IP, MAC, Hardware ID | Есть, только по IP | Есть |
6.5 | Антиспам и антифлуд фильтры | Есть | Есть |
6.6 | Система управления пользователями | Нет | Есть, WEB-интерфейс |
6.7 | Подробная справочная информация о пользователях (ФИО, email, телефоны, дата рождения, фото и т.п.) | Нет | Есть |
Операционные системы | |||
7.1 | Windows | Есть | Есть |
7.2 | Android | Нет | Есть |
7.3 | Linux | Нет | Есть |
7.4 | macOS | Нет | Есть |
7.5 | WEB | Нет | Есть |
Дополнительные возможности | |||
8.1 | Сетевые статусы пользователей "свободен", "занят", "нет на месте" | Есть | Есть |
8.2 | Скриптовый язык для написания простых программ, расширяющих возможности чата | Нет | Есть |
8.3 | Интеграция с внешними сервисами | Нет | Есть (1С, phpBB, REST, php, C#, Delphi, Python, Java, Telegram, etc.) |
8.4 | Система поиска пользователей | Нет | Есть |
8.5 | Древовидный общий список контактов, единый для всей сети, с неограниченным уровнем вложенности | Нет | Есть |
8.6 | Менеджер учётных записей, если за одной программой работает несколько человек | Нет | Есть |
8.7 | Система игнорирования пользователей | Есть | Есть |
8.8 | Система плагинов для расширения возможностей программы | Есть | Есть |
8.9 | Список подразделений компании | Нет | Есть |
8.10 | Список должностей компании с сортировками "начальники — сверху" в списках контактов | Нет | Есть |
8.11 | Внутренний форум | Нет | Есть |
8.12 | Управление проектами | Нет | Есть, Kanban |
8.13 | Чат для сайта | Нет | Есть |
8.14 | Конструктор дистрибутивов | Нет | Есть |
Техническая поддержка пользователей программы | |||
9.1 | Встроенная справочная система | Есть, одна страница | Есть |
9.2 | Форум сообщества поддержки | Нет | Есть |
9.3 | Поддержка разработчиков по электронной почте | Неизвестно | Есть |
9.4 | Дополнительные справочные материалы, статьи по использованию программы на сайте, блог | Нет | Есть |
9.5 | Поддержка разработчиков по Skype, Viber, Telegram, WhatsApp | Нет | Есть |
9.6 | Поддержка разработчиков по телефону | Нет | Есть |
3. Рекомендации по переходу на MyChat
Почему? Чат UniChat для онлайн-общения в локальных сетях (интранет) больше не обновляется, нет исправлений ошибок и поддержки современных операционных систем и мобильных платформ Android/iOS. Нет версий под Linux, macOS и WEB. Нет системы администрирования пользователей и центрального сервера. Нет обмена файлами и фото, звонков и надёжной системы хранения и синхронизации истории сообщений.
Как перейти? Для небольших компаний или бюджетных учреждений, до 20 человек онлайн, переход с Юничата на MyChat пройдёт с нулевыми затратами, потому что стандартная лицензия MyChat — бесплатная, без ограничений по времени использования (чем отличается бесплатная версия MyChat от коммерческой?). MyChat работает сразу после установки, "из коробки", а для настройки не надо разбираться в rocket science. Обновления MyChat Free Edition — бесплатные. Для бюджетных организаций и компаний с ограниченным финансированием это важно. Можно сэкономить на лицензиях и зарплате системного администратора.
Цены. Если вам надо больше 20 человек онлайн, то покупается сервер на нужное количество людей. Клиентские приложения бесплатные. Одно конкурентное подключение стоит 4 USD. Год обновлений — бесплатно, а затем подписка на обновления (2 USD за человека в год), если нужно получать свежие версии. Отдельно покупаются только MyChat Guest и конструктор дистрибутивов Distrib Maker и робот-викторина.
Служба поддержки. На русском и английском языках, ответы в течение одного рабочего дня по email, телефону и популярных мессенджерах. Большой и активный русскоязычный форум поддержки (больше 33 тысяч постов на сентябрь 2019 года).
Давно на рынке? Первая версия MyChat вышла в 2004 году, за это время появились аудио и видео звонки, приложения под все популярные ОС, система управления проектами Канбан, внутренний форум и файловый сервер, интеграции с 1С, Телеграм и phpBB. Обновления MyChat стабильно выходят 5-6 раз в год. Больше полумиллиона реальных пользователей из России, Украины, Беларуси, Молдовы, Казахстана, США, Канады, Индии, Великобритании и других стран. Реальные большие отзывы покупателей.