R&Q Multi (XMPP + WIM)
- Mikanoshi
- Не в сети
- Platinum Member
- Сообщений: 1112
- Спасибо получено: 158
Я только добавил IF_sticker флаг для сообщений-стикеров, ты выложил код с EK_sticker
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1995
- Спасибо получено: 35
Сорян@Rapid D
Я только добавил IF_sticker флаг для сообщений-стикеров, ты выложил код с EK_sticker
Просто мне показалось, что хранить в истории всю картинку - как-то это жирновато, вот и выделил в отдельный тип.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Не в сети
- Platinum Member
- Сообщений: 1112
- Спасибо получено: 158
Сорян@Rapid D
Я только добавил IF_sticker флаг для сообщений-стикеров, ты выложил код с EK_sticker
Просто мне показалось, что хранить в истории всю картинку - как-то это жирновато, вот и выделил в отдельный тип.
Это да, только зачем отдельный тип, если как раз по флагу проще определить, что сообщение является текстом для парсинга стикера?)) Это у меня можно не определять, а просто рисовать бинарные данные. Плюс только в отдельных настройках событий для стикеров, отключить например всплывающие подсказки для них)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1995
- Спасибо получено: 35
Это не "только"...
Плюс только в отдельных настройках событий для стикеров, отключить например всплывающие подсказки для них)
Скорее более логично отключить сохранение в истории вообще. Пусть себе в чате показывается немного
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Не в сети
- Platinum Member
- Сообщений: 1112
- Спасибо получено: 158
Кстати
IF_sticker = 1 shl 4;
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1995
- Спасибо получено: 35
Проверяйте в сегодняшней версии воскл. знакиЕсть 2 небольшие проблемы:
1 - Никак не получается убрать восклицательные знаки(необходим авторизация) в контакт-листе(кроме как удалением и добавлением контакта заново, а их более 500 в контакт-листе);
2 - Контакты использующие оф клиент то появляются, то пропадают в оффлайн. По наблюденим когда оф клиент не активен контакт уходит офлайн, когда переходит на оф клиент - появляется в онлайне(хотя может печатать другому аккаунту, не вам, а только использует оф клиент). А в офф клиенте он онлайн постоянно. Может это можно как то поправить?(сорри, что как то криво написал)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- lexxhat11
- Не в сети
- New Member
- Сообщений: 11
- Спасибо получено: 0
Теперь другая ошибка...
В карточке контактов есть графа Показывать... при попытке изменить имя контакту как в графе Ник, меняется до первого отправленного сообщения, затем опять меняет на первоначальное имя.
Накатил поверх вчерашнюю версию - восклицательные знаки пропали(авторизацию не требуют контакты) и имена контактов остаются как были, не меняются.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Не в сети
- Platinum Member
- Сообщений: 1112
- Спасибо получено: 158
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1995
- Спасибо получено: 35
хз, я скопировал код из официальной аськи:А откуда в state что-то кроме online/offline? Ну и mobile ещё, хотя даже его ни разу не видел.
auto iter_lastseen = _node_event_data.FindMember("lastseen");
if (iter_lastseen != _node_event_data.MemberEnd() && iter_lastseen->value.IsUint())
{
presense_->lastseen_ = iter_lastseen->value.GetUint();
if (presense_->lastseen_ != 0 && presense_->state_ != "offline" && presense_->state_ != "mobile")
presense_->state_ = "offline";
}
if (presense_->state_ == "occupied" || presense_->state_ == "na" || presense_->state_ == "busy")
presense_->state_ = "dnd";
else if (presense_->state_ == "away")
presense_->state_ = "away";
else if (presense_->state_ != "offline" && presense_->state_ != "invisible" && presense_->state_ != "mobile")
presense_->state_ = "online";
if (presense_->state_ == "mobile" && presense_->lastseen_ == 0)
presense_->state_ = "online";
Удалю значит опять
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Не в сети
- Platinum Member
- Сообщений: 1112
- Спасибо получено: 158
Да, dnd возвращает ошибку.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1995
- Спасибо получено: 35
Добавил сохранение имени на сервере.Да, теперь все в порядке. спасибо!!!
Теперь другая ошибка...
В карточке контактов есть графа Показывать... при попытке изменить имя контакту как в графе Ник, меняется до первого отправленного сообщения, затем опять меняет на первоначальное имя.
Накатил поверх вчерашнюю версию - восклицательные знаки пропали(авторизацию не требуют контакты) и имена контактов остаются как были, не меняются.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Не в сети
- Platinum Member
- Сообщений: 1112
- Спасибо получено: 158
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1995
- Спасибо получено: 35
А на вчерашней версии как?...
UPD 15032019 17:46
Проверил отправлять сообщения оффлайн клиентам на RnQ - та же песня... не доходят сообщения
кстати проверил, с о сборкой 1129 Сборка 55 beta от Mikanoshi то же самое....
....
Есть надежда что должны все доходить теперь
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Serg_K
- Не в сети
- Junior Member
- Сообщений: 20
- Спасибо получено: 0
- при КАЖДОМ запуске крыски (неважно, копировал ли я в папку с новой версией свой акаунт или запускал с нуля) выскакивают ОДНИ и те же (прошлогодние) сообщения от некоторых моих контактов?
- запускаю для теста две крыски с разными ЮИНами. в одну сторону сообщения доходят ОК (правда в офлайн еще не пробовал), в другую - крякозябры
26.03.2019 09:51:02, Сергей
Auc7u+OhGh+vVYkFUvMYPw==
26.03.2019 09:51:02, Сергей
Auc7u+OhGh+vVYkFUvMYPw==
Спасибо
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1995
- Спасибо получено: 35
1. Не сделана отправка на сервер статуса получения сообщения. Поэтому у этих сообщений остаётся статус "непрочитано". Если ответить на него - статус полученных сообщений автоматически обновится.Я понимаю, что все версии пока что альфа, но хочу спросить почему:
- при КАЖДОМ запуске крыски (неважно, копировал ли я в папку с новой версией свой акаунт или запускал с нуля) выскакивают ОДНИ и те же (прошлогодние) сообщения от некоторых моих контактов?
- запускаю для теста две крыски с разными ЮИНами. в одну сторону сообщения доходят ОК (правда в офлайн еще не пробовал), в другую - крякозябры
26.03.2019 09:51:02, Сергей
Auc7u+OhGh+vVYkFUvMYPw==
26.03.2019 09:51:02, Сергей
Auc7u+OhGh+vVYkFUvMYPw==
Спасибо
2. На второй стороне возможно было запущено несколько клиентов паралельно? Вроде в таком режиме шифрование подглючивает. Можно выключить шифрование...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Не в сети
- Platinum Member
- Сообщений: 1112
- Спасибо получено: 158
Если и будет доходить, то в чате отображаться не будет вообще))А на вчерашней версии как?
Есть надежда что должны все доходить теперь
Номер запроса же в базу сохраняется, а там integer. Придётся и его на GUID менять...
В multi кстати какая база? UInt64 должно быть для MsgID, он же ReqID пока сервер не прислал реальный id, иначе overflow и значение будет заворачиваться)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Не в сети
- Platinum Member
- Сообщений: 1112
- Спасибо получено: 158
Получение по delivered лучше делать, а не по read, последнее это когда полученное в чате было увидено юзером.1. Не сделана отправка на сервер статуса получения сообщения. Поэтому у этих сообщений остаётся статус "непрочитано". Если ответить на него - статус полученных сообщений автоматически обновится.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1995
- Спасибо получено: 35
github.com/drapid/rnq/commit/ba5896e03c2...bf7a6959c20ffd99b38d
Если и будет доходить, то в чате отображаться не будет вообще))А на вчерашней версии как?
Есть надежда что должны все доходить теперь
Номер запроса же в базу сохраняется, а там integer. Придётся и его на GUID менять...
В multi кстати какая база? UInt64 должно быть для MsgID, он же ReqID пока сервер не прислал реальный id, иначе overflow и значение будет заворачиваться)
Всё вроде работает, в чате на иконке печать проставляется...
Я надеялся ты сделаешь обновление статуса
Получение по delivered лучше делать, а не по read, последнее это когда полученное в чате было увидено юзером.1. Не сделана отправка на сервер статуса получения сообщения. Поэтому у этих сообщений остаётся статус "непрочитано". Если ответить на него - статус полученных сообщений автоматически обновится.
Я пока не разобрался, что это за robusto...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Mikanoshi
- Не в сети
- Platinum Member
- Сообщений: 1112
- Спасибо получено: 158
github.com/drapid/rnq/blob/master/RnQ/WIM/Protocol_WIM.pas#L527
А он либо не задаётся, либо делается TryStrToInt на reqId/sendReqId, и если там GUID, а не число, то в результате будет непонятно что))
Я сделал просто по lastMsgId, скачиваются от сохранённого ранее и до бесконечности (почти, Integer.MAX ). Правильнее конечно делать от lastDelivered до lastMsgId, но нужно ли посылать запрос для обновления lastDelivered или он сам при получении обновлется - без понятия. И так работает))
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Rapid D
- Не в сети
- Administrator
- Сообщений: 1995
- Спасибо получено: 35
Точно, поправил...А не должно)) eventInt же нужен для нахождения сообщения в базе:
github.com/drapid/rnq/blob/master/RnQ/WIM/Protocol_WIM.pas#L527
...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.