Здесь вы можете задать любые вопросы по MyChat, по работе программы, её настройке, лицензированию и т.д.
Аватара пользователя
DjMix
здравствуйте! требуется следующее,

предположим я пишу одному пользователю, он сидит на айпаде через веб интерфейс,
в этот момент у него запущено mychat клиент на работе.
если убрать галочку про автозавершение работы mychat клиента пр логине с другого компа
будут ли приходить сообщения на оба устройства? очень надо чтобы было так и без глюков. )
Аватара пользователя
Алексей Пикуров
День добрый.

Не будет. Более того, в сети сможет быть только один пользователь под своим логином. Если юзер с айпада попытается залогиниться - то его:

а) не пустит на сервер, если не включено автозавершение работы пользователей на сервере;

или

б) пустит (если автозавершение включено), но выбросит из сети старого, с работы. Клиент чата завершит свою работу.
Аватара пользователя
DjMix
воооот. теперь вопрос следующий, можно ли предусмотреть в программе, в тех же настройках пользователя или скрипт какой сделать.

я создам второго пользователя , один с компа - user1, второй с айпада или браузер из дома - user2.

например будет приходить на комп user1, и скрипт тот же будет какой то отрезок 5 - 10 секунд проверять по конкретному пользователю.

если есть сообщение то оно будет дублироваться к кому скажу в скрипте.

главное чтобы до user'а 2 доходило бы само сообщение и как от того пользователя , от которого пришло к user'у 1.
Аватара пользователя
Алексей Пикуров
Да, скриптом можно сделать безусловный редирект, на сервере. Это какая-то доработка индивидуальная, для одного юзера, или вы сейчас говорите об автоматической синхронизации базы истории сообщений?
Аватара пользователя
DjMix
Алексей Пикуров писал(а): Это какая-то доработка индивидуальная, для одного юзера, или вы сейчас говорите об автоматической синхронизации базы истории сообщений?


ну как сказать), вроде как физически для одного человека. но чтоб ни одно собщение не потерялось, пока он там не в зоне или ещё что , если перемещается.

врубаю скрипт... после этого если пошли сообщения на конкретного пользователя, эти же собщения идут на другого.

если кто из этих созданных юзеров в оффлайне, то по сути должны всё равно получить все сообщения которые накоплены за время работы скрипта.
Аватара пользователя
Алексей Пикуров
Немного изврат, если честно :) Или я чего-то не понимаю. Вам нужна автосинхронизация сообщений, типа как в скайпе, только надёжная, со 100% доставкой. Правильно?
Аватара пользователя
DjMix
изврат) 100% . хотелось бы конечно , с чего я вопрос свой начал, чтобы один пользователь заъодил и всё синхронизировалось. ну второй способ вот с помощью скрипта)

ну да как в скайпе и со 100% доставкой. главное чтоб работало)
Аватара пользователя
Алексей Пикуров
Думаю, можно это сделать. Я подумаю, как - и напишу скрипт. А вы его уже под свои нужды докрутите, окей?
Аватара пользователя
DjMix
я постараюсь) и спасибо!!!
Аватара пользователя
Алексей Пикуров
Готово, в версии 5.4 сможете попробовать. Скрипт:
Код: Выделить всё
const
  iUIN1 = 6;
  iUIN2 = 3;
var
  iUINFrom, iUINTo: integer;
  sMsg: string;
begin
  sMsg := mGetLastPrivateMessage(iUINFrom, iUINTo);
 
    if iUINTo = iUIN1 then mSendPrivateMessage(iUINFrom, iUIN2, sMsg)
      else if iUINTo = iUIN2 then mSendPrivateMessage(iUINFrom, iUIN1, sMsg);
end.

Константы iUIN1 и iUIN2 - это ваши два получателя сообщений. Скрипт вешается на событие OnPrivateMessage. Что он делает?
Если получатель приватного сообщения - UIN=6, то копия сбрасывается также и пользователю с UIN 3. От имени отправителя. И наоборот. Онлайн или офлайн получатель - не имеет значения.
Аватара пользователя
DjMix
Спасиб!! ждёмс выхода)
Аватара пользователя
DjMix
вот какой момент хотелось бы решить, короче дублирует сообщения на ура, всё вроде в порядке, хотелось бы чтобы дублировал он только сообщения за определённый период и не больше.

например посылал я сообщение человеку с 1 июня, он зашёл на дублирующий акк только 1 июля, (параллельно мне поставили задачу хранить у народа историю только за 7 последних дней) ему сыпятся все сообщения за весь период, а надо получается с 23 июня.


можно ли как то реализовать этот момент?
Аватара пользователя
Алексей Пикуров
Получается, это можно решить, если хранить офлайн сообщения не вечно, а только за какой-то период. Или иметь возможность принудительно "убить" офлайн-сообщения в базе данных за какой-то период.

Я добавлю соответствующие функции в скриптовый движок и настройку сервера, сколько времени хранить офлайновые сообщения.
Аватара пользователя
Алексей Пикуров
Добавлена серверная скриптовая функция mPurgeOfflinePrivateMessages, которая решает поставленную задачу - удаление приватных оффлайн сообщений за период, настраивается гибко, описание работы будет в справке сервера.