Miranda NG Official Community Forum

Miranda NG русскоязычный форум => Разработка => Topic started by: wismerhil on 19 01 2015, 10:55:26

Title: Сервер дублирования сообщений Не могу отобразить исходящие сообщения
Post by: wismerhil on 19 01 2015, 10:55:26
Здравствуйте.  :)
Мне необходимо продублировать сообщения на все открытые клиенты Миранды. Т.е. есть организация в которой часто используется ICQ, при этом под одним UIN Миранда может быть загружена на нескольких компьютерах и новые сообщения отправленные и полученные на одном компьютере не дублируются на остальные загруженные клиенты - вот, а задача собственно на всех загруженных клиентах поддерживать актуальный диалог.
Собственно для решения этой задачи я сделал следующее:
1. Собрал отдельно приложение с БД в которой хранятся отправленные/полученные сообщения
2. В момент получения/отправки сообщения - сделал отправку на приложение из пункта 1
3. В модуль ICQOscar дописал - В отдельном потоке запрос к программе из первого пункта - получаю историю сообщений для конкретного UIN
Относительно нормально всё работает - сообщения я получаю, но никак не могу дописать их в чат -
Точнее получилось с помощью db_event_add добавить в чат входящие сообщения
Не могу отобразить исходящие сообщения - не знаю как это отобразить.... :'(
Я недавно начал разбираться в Miranda. Объясните пожалуйста как добавлять исходящие и входящие сообщения в чат или в историю хотя бы но желательно без повторной их отправки. Вот.
Title: Re: Сервер дублирования сообщений Не могу отобразить исходящие сообщения
Post by: ghazan on 19 01 2015, 13:27:29
правильное решение - поставить jabber
Title: Re: Сервер дублирования сообщений Не могу отобразить исходящие сообщения
Post by: wismerhil on 20 01 2015, 03:58:17
Неужели никто не добавлял сообщения в чат?(без отправки). Jabber брать нельзя все пользуются icq
Title: Re: Сервер дублирования сообщений Не могу отобразить исходящие сообщения
Post by: Apollo2k4 on 20 01 2015, 10:47:02
Нужно из костылей собрать велосипед :-X. Странно организовывать такое в протоколе который не умеет такое делать, да и ещё каких-то три года назад вышибал старый клиент при входе с нового. Идея с джабером очень разумна.
Title: Re: Сервер дублирования сообщений Не могу отобразить исходящие сообщения
Post by: unsane on 20 01 2015, 11:13:19
wismerhil, посмотри как происходит синхронизация истории в протоколе VKontakte (http://trac.miranda-ng.org/browser/trunk/protocols/VKontakte/src/vk_history.cpp#L212).
Конкретно, функцию OnReceiveHistoryMessages.
Title: Re: Сервер дублирования сообщений Не могу отобразить исходящие сообщения
Post by: wismerhil on 26 01 2015, 12:53:08
Спасиба unsane .  :THUMBS UP:
Нашёл решение своей задачи свойство - flags в структуре DBEVENTINFO - аргументе функции db_event_add. Простановка различных флагов в этом свойстве позволяет делать сообщение от пользователя/польлзователю/прочитанное/не прочитанное/добавлять/не добавлять в историю и т.д. Вот. В общем разобрался. Спасиба! :THUMBS UP: