MyChat 8.4 — own messenger with encryption

  1. Extended scripting engine
  2. Improvements for MyChat on Android
  3. WEB server cache system
  4. Full list of changes + development history
  5. How to update to the latest version?

1. Extended scripting engine

USE MSL class for working with strings — TStringList. The set contains 7 properties and 13 methods. Quick uploading for text files to the memory, sorting options, inserting, deleting, and searching.

Improved support for dynamic arrays. In this version, we added a couple of functions for working with date and time in ISO standard; functions for profiling scripts and working with users.

The function mSendPrivateMessage was changed (removed the latest parameter bSaveToHistory), so check your working scripts.

Also, removed the function mGetUserCID from the library as deprecated.

2. Improvements for MyChat on Android

In the application, hide personal and common (shared) contacts according to the set of rights groups on the server. If both of these rules are off, the main screen won't display the tab "Contacts".

When you connect to the server via QR code, the external address of your server is automatically added to the settings for automatic switching between networks. When you are at work — the application connects via Wi-Fi within a company's local network; when on the way or at home — it connects to the external address via the internet.

We removed the pop-up notification window that displayed information about connection status and if the server is available. Now the unobtrusive status will be displayed:

Connection status in MyChat for Android

A new rule in the rights group for Android users "Display the tab "Calls" on the main screen". If you do not need it, disable it.

3. WEB server cache system

All files uploaded on the server are cached in the memory. That includes the cache of the WEB Admin Panel, Help, intranet forum, and Kanban board.

It gives a significant speed increase for all WEB services work and saves the traffic because the data is compressed in GZIP (i fit makes sense, of course. For example, the system does not compress JPG images or ZIP archives).

If the server detects no requests to these files, they will be automatically deleted from the memory.

Cache option on MyChat WEB server

On MyChat Server Admin Panel, we made a special tool for convenient configuration of the cache system.

By default, the cache system is on and configured for the best speed performance, but you can disable it.

4. Full list of changes + development history

Development history with developers' comments

MyChat Client

[+] (Android) added the processing for rules dealing with displaying common and personal contact lists. If both of these rules are off, the main screen does not display the tab "Contacts";

[*] (Android) redesigned system for displaying disconnection from the server (when switching between networks or a server is unavailable). Now, instead of a pop-up window at the bottom, a connection status will be displayed in the toolbar;
[*] when enabling the filter in dialogues and contacts, and then clicking on the result — the filter comes off;
[*] improved rendering for the personal contact list; now groups and selected users are more visible even if the window is unfocused;
[*] updated library for Hunspell spell checking;
[*] auto-replacing commas with dots when entering the server's address in the accounts manager and first launch wizard;
[*] when connecting Android users via QR code, and there is no alternative server's address, MyChat Server external host automatically substituted (specified in MyChat Server settings, Admin Panel -> Settings -> Network settings -> IP address or hostname for external clients);
[*] reduced load on the server when requesting users' avatars;

[-] (Android) in some cases, the incoming call does not perform in a local network;
[-] (Linux, macOS, WEB) pop-up notifications about unread messages in the conferences do not display. Fixed;
[-] (Android) incorrect display of deleted messages. Fixed;
[-] (Linux, macOS, WEB) impossible to delete an email address in own profile. Fixed;
[-] (Linux, macOS, WEB) error when kicking a user causes disconnection from the server. Fixed;
[-] (Android) indicators for unread messages displayed incorrectly next to chat dialogues with messages more than 100. Fixed;
[-] (Android) error when launching the application in the "Second space" on Xiaomi devices. Fixed;
[-] error ID: F4DCFCCF occurs sometimes when viewing a user's profile (F4)
[-] "Copy link" on a LAN link works incorrectly, the description text copied instead of the link itself; [-] when typing text, opening the settings (Alt+0), and closing the settings windows, the template text disappears; [-] (Android) when scanning QR codes, login information is not substituted in the input field. Fixed;
[-] (Android) if during a call the set of IP addresses is not full, the call does not perform. Fixed;

MyChat Server

[+] added dynamic caching of WEB server files;
[+] new rule for the rights group "Android" — "Display the tab \"Calls"\ on the main screen";
[+] (MSL) class TStringList, 7 properties and 13 methods for quick processing of text lists and files;
[+] (MSL) function Frac for getting a fractional part of a real integer;
[+] (MSL) function GetTickCount for getting the uptime of the system in milliseconds and profiling the script performance;
[+] (MSL) function Sqr for raising numbers to the second power;
[+] (MSL) function Sqrt for calculation the square roots;
[+] (MSL) event OnConfKick for processing the process of kicking a user from a text conference;
[+] (MSL) function DateTimeToISOStr for converting date and time into ISO format;
[+] (MSL) function ISOStrToDateTime for converting ISO string into double value of date and time;
[+] (MSL) function mAddNewBBSMessage for adding messages on the Bulletin board;
[+] (MSL) function mGetBirthdayUsers for getting the list of users whose birthdays match a specified date;
[+] (MSL) function StringCharsCount for calculating a number of character occurrences in a string;
[+] (MSL) function mGetCIDSByUINAndClientType for getting a list of connections of a specified user by his application type;
[+] (MSL) function GetArrayLength for getting the number of elements of the one-dimensional dynamic array;
[+] (MSL) function SetArrayLength for setting the size of the one-dimensional dynamic array;
[+] (MSL) function mGetConfUsersList for getting the list of users of a text conference

[*] deleted the configuration for prohibiting exiting from auto-created conference on Admin Panel. Now, this option is on by default for all auto-created conferences on the server;
[*] if a user creates a conference, he automatically becomes a moderator. But this information must not display in the list of conference moderators who assigned manually on the server;
[*] (MSL) removed the parameter bSaveToHistory from the function mSendPrivateMessage;
[*] (MSL) deleted function mGetUserCID as deprecated;
[*] added the system for caching avatars of any size. This system increases the r restarting speed of a server with a big number of online users or slow hardware;

[-] when selecting conference for moderators, it displays empty positions with UIDs in the drop-down list;
[-] deleting process for auto-created conferences works incorrectly — users who added such a conference manually, enter it again after reconnection;
[-] (Kanban) when creating a new project, it displays "Processing request" and nothing happens. Fixed;
[-] (MSL) fixed functions mIncUIN and mDecUIN;
[-] error "Out of memory" when generating previews of large images (more than 5К);
[-] user registration on the client side does not work. Fixed;
[-] the server freezes in some cases after the restart and a big number of online users because of incorrect statuses of newly connected users. Fixed.

5. How to update to the latest version?

Both commercial and free versions are updated in the same way. The server is updated first, then the clients. In general, this process is performed automatically.

Instruction for updating MyChat

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