Author Topic: Опять меняется протокол ICQ?  (Read 291144 times)

0 Members and 2 Guests are viewing this topic.

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #690 on: 28 02 2019, 23:43:12 »
учётку снесли нафиг с устройства
Хз что за учётка и как её можно снести)) Используя пароль или смс можно создать токен, что значит ты типа залогинен.
Используя токен можно создавать сессии, и при их закрытии ничего не сносится. Так что их нужно использовать как удобнее, а без поддержки серверной истории неправильно как раз их оставлять.
 

Offline colonel

  • Newbie
  • *
  • Posts: 26
Re: Опять меняется протокол ICQ?
« Reply #691 on: 01 03 2019, 00:03:47 »
Используя токен можно создавать сессии, и при их закрытии ничего не сносится. Так что их нужно использовать как удобнее, а без поддержки серверной истории неправильно как раз их оставлять.
Вот мне кажется, человек совершенно разумно говорит.
Нутром чую - оставлять открытой сессию при выключенной проге - неправильно)
 

Offline Sergey_M

  • Newbie
  • *
  • Posts: 48
Re: Опять меняется протокол ICQ?
« Reply #692 on: 01 03 2019, 03:16:54 »
А кто как эти параметры у себя настроил:

Code: [Select]
А нельзя это:
3600
В сети
32000
Недоступен

? Пологичнее может

 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #693 on: 01 03 2019, 10:57:04 »
Хз что за учётка и как её можно снести)
В официальном клиенте это называется "выход".  Когда уин удаляется из программы вместе со всеми токенами и прочим.

Quote
ghazan, 01.03.2019 15:35:54:
ну это фактически разрегистрация устройства
 

Offline ghazan

Re: Опять меняется протокол ICQ?
« Reply #694 on: 01 03 2019, 12:47:48 »
Mikanoshi,
Используя пароль или смс можно создать токен
и что, каждый логин получать новую смс? :)

что значит ты типа залогинен
нет, залогинен - это когда ты дернул /presence/setState?view=online и крутишь long poll

Используя токен можно создавать сессии, и при их закрытии ничего не сносится.
и поэтому у сессии sessionTimeout=7776000, да? ты же при входе получаешь последнее сообщение для каждого контакта, если у тебя в базе оно отличается, просто поддернул историю - и всё, никаких проблем
 

Offline colonel

  • Newbie
  • *
  • Posts: 26
Re: Опять меняется протокол ICQ?
« Reply #695 on: 01 03 2019, 13:22:29 »
и что, каждый логин получать новую смс?
Я каждый раз выхожу из сессии на сайте icq, и никаких смс не получаю, потом просто логинюсь, и приходят новые сообщения.
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #696 on: 01 03 2019, 13:28:46 »
Mikanoshi,
Короче, я потестировал следующим образом:

- стёр все сессии для чистоты эксперимента
- разок зашёл в Миранду, чтобы она сделала сессию, и офнулся
- разок зашёлл в ICQ 10, чтобы он тоже сделал сессию, и офнулся

Теперь я захожу в Миранду обшаюсь. Выключаю Миранду, соответственно, я не в сети, но сессия продолжает висеть. Мне пишут в это время. Захожу в ICQ 10. Сообщения прилетели.

Что я сдлелал не так? Почему официальный клиент прекрасно работает и не нуждается в том, чтобы Миранда закрыла сессию? Почему остальные клиенты не могут так же работать?
 

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #697 on: 01 03 2019, 14:18:14 »
и что, каждый логин получать новую смс?
Я же написал, что нет) Закрытие сессии не инвалидирует токен, если не добавлять invalidateToken=1 к запросу.

нет, залогинен - это когда ты дернул /presence/setState?view=online и крутишь long poll
Это когда ты "онлайн", а не залогинен. Статус вообще в новом протоколе ничего не значит. Можно быть залогиненным и не онлайн, что оф клиент постоянно и делает.
Можно даже сообщения отправлять не появляясь в сети, если не запрашивать fetchBaseURL.

и поэтому у сессии sessionTimeout=7776000, да? ты же при входе получаешь последнее сообщение для каждого контакта, если у тебя в базе оно отличается, просто поддернул историю - и всё, никаких проблем
Если клиент умеет работать с серверной историей, то никаких вопросов. Иначе же получение офлайн сообщений полностью зависит от offlineIM события, которое приходит в момент первого запроса fetchBaseURL, а приходит оно только если не было открыто сессии.

Что я сдлелал не так? Почему официальный клиент прекрасно работает и не нуждается в том, чтобы Миранда закрыла сессию? Почему остальные клиенты не могут так же работать?
Ты всё наоборот сделал потому что))) Проблема в получении офлайн сообщений в миранде, когда сессия открыта, но ты в этот момент не онлайн и не запрашиваешь новые события.
« Last Edit: 01 03 2019, 14:20:13 by Mikanoshi »
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #698 on: 01 03 2019, 14:38:31 »
Ты всё наоборот сделал потому что)
Нет, падажжи... я всё сделал, как писал colonel. Мы ведь сейчас обсуждаем именно его проблему.

Он писал:
Quote
Сейчас приходится делать так - закрыть миранду, зайти на https://icq.com/session/list
Там в списке эта сессия как активная, даже если я в миранде жму оффлайн перед выходом.
Жму на сайте "завершить все сессии", и только тогда она убивается.
Пропадают не в миранде, а в других мессенджерах, в частности Мандарин под Андроид (я уже писал). Если сессию завершать - то все в порядке.

То есть, выключили Миранду, нам написывают в офлайн, но другой клиент эти сообщения не получит. Я ведь именно так и сделал.  И он сам же пишет, что сообщения пропадают не в Миранде. Я просто смоделировал его случай, но заменил Мандарин на ICQ 10. И у ICQ 10 таких проблем не возникло.

Сейчас получается непонятно, в какой ситуации что пропадает. Один говорит так, другой говорит наоборот. Мне бы хотелось чётко пошагово понять, как воспроизвести проблему, а затем потестировать её в сочетании "Миранда + разные альтернативные WIM-клиенты". Таким образом, это однозначно ответило бы на вопрос, кто виноват. Если баг наблюдается при любом сочетании Миранды и альтернативных клиентов, то только тогда это косяк Миранды.
 

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #699 on: 01 03 2019, 14:50:37 »
Значит Мандарин не умеет получать серверную историю, а Миранда получается умеет хотя бы немного? Мне лень исходники смотреть))
Хотя может просто fetchBaseURL сохраняется, а не получается новый пингованием сессии.
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #700 on: 01 03 2019, 14:54:07 »
Я не знаю, что умеет Маедарин, но Миранда чуток умеет

Quote
dartraiden, 01.03.2019 17:53:35:
а миранда хоть чуток умеет получать серверную историю?

ghazan, 17:53:43:
конечно

Именно поэтому я тут и распинаюсь про то, что нужно допилить Мандарин. В общем, я проведу таки сейчас тесты по описанной выше методике (попытка альтернативного клиента получить офлайн-сообщения, которые были созданы в промежутке между выключением Миранды и запуском альтернативного клиента). Посмотрим расклад по ICQ 10, Мандарину и R&Q.
 

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #701 on: 01 03 2019, 15:04:46 »
Я и так могу сказать результат) Только оф клиент получит сообщения.
В крысе я делал синхронизацию с серверной историей давно ещё, но только на простейшем уровне и кривым способом, потом ICQ сменили логин и я не смог подпись запросов сделать, а сейчас когда сделал уже лень заниматься синхронизацией этой. Были бы мануалы какие по формату запросов-ответов histDlgState, а то самому разбираться гемор.
Серверную историю только для пометки доставки использую пока =)
 

Offline lokapal

Re: Опять меняется протокол ICQ?
« Reply #702 on: 01 03 2019, 15:24:15 »
Я могу точно сказать, как пропадают сообщения.
Человек сидел в новой стабильной миранде, потом ушёл гулять с собакой, комп. выключил. Я ему написал пять сообщений, он при этом у меня был зелёный онлайн (в эти самые полчаса, которые у меня стоят как "удерживать онлайн"). И ни одного сообщения он не получил, когда потом включил компьютер. У меня тоже новая стабильная миранда
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #703 on: 01 03 2019, 15:28:04 »
Итак, тесты.

Условия
перед каждым тестом я закрывал все сессии
затем единожды логинился и выключал каждый из двух участвующих в тесте клиентов, чтобы они создали по сессии (выключал их физически, например, на Android это Force Stop, в Windows это полное завершение процесса)
затем запускал первый клиент (чтобы его сессия была новее) выключал клиент (физически)
собеседник писал мне (в офлайн, поскольку ни одного включённого клиента у меня нет)
затем я заходил в онлайн со второго клиента и смотрел, пришли ли эти самые офлайн-сообщения

Результаты
Миранда + Миранда = пришло
Миранда + ICQ 10 = пришло
Миранда + ICQ Mobile = пришло
Миранда + Mandarin IM = пришло

Я в недоумении. colonel, напишите, пожалуйста (если не хотите публично, то в личку), максимально подробно действия, после которых у вас без закрытия сессии не приходят сообщения. Чем подробнее, тем лучше. То есть, настройки протокола в Миранде, запущен ли у вас Мандарин на телефоне, или вы его запускаете руками после того, как выключили ПК, и т.д.
 

Offline lokapal

Re: Опять меняется протокол ICQ?
« Reply #704 on: 01 03 2019, 15:31:42 »
Миранда + Миранда = пришло
Нет, вот это теряется, если отправляешь сообщение в закрытый "типа онлайн" клиент собеседника (может быть, надо часок выждать, не знаю).
 
The following users thanked this post: dartraiden