2017-02-01 4 views
4

У нас есть функциональность для уведомления о групповом push-сообщении с сервера.Получить последние последние данные о выходе openfire с использованием REST API

Сценарий ниже: -

Применение открыта и перейдите на вкладку группы сообщений. Теперь отправьте сообщение группе, чтобы другие пользователи группы получили сообщение, которое я отправил.

Закрыв (убить или в фоновом режиме) приложение с конца ios, они устанавливают присутствие пользователей в автономном режиме. Поэтому, как только приложение будет закрыто, они получат push-уведомление на мобильных устройствах.

Проблема, закрыв приложение, но я получаю push-уведомление на мобильном телефоне, хотя я читаю одно и то же сообщение.

Из базы данных я установил задание cron, которое запускается на сервере каждые 30 секунд и checks the user presence в группе и отправляет push notificaiton тем пользователям, которые находятся в автономном режиме на своем мобильном устройстве.

Итак, есть ли способ получить последнюю отметку времени выхода из системы, используя REST API, чтобы я мог поместить условие и проверить, будет ли последний пользователь, вошедший вовремя, меньше, чем текущее время, которое ускорит push notificaitons.

не в состоянии получить последний раз выхода из системы с помощью REST API http://example.com:9090/plugins/restapi/v1/sessions/yourUserName

, который выдает: -

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <sessions> 
    <session> 
     <sessionId>[email protected]/1ae2xq14da</sessionId> 
     <username>yourUserName</username> 
     <ressource>1ae2xq14da</ressource> 
     <node>Local</node> 
     <sessionStatus>Closed</sessionStatus> 
     <presenceStatus>Online</presenceStatus> 
     <priority>0</priority> 
     <creationDate>2017-01-18T08:58:01.611Z</creationDate> 
     <lastActionDate>2017-01-18T08:58:05.121Z</lastActionDate> 
     <secure>false</secure> 
    </session> 
    </sessions> 

Выполнив выше способа получения даты создания и дату последнего действия неверен.

1) CreationDate: - 2017-01-18T08: 58: 01.611Z
2) lastActionDate: - 2017-01-18T08: 58: 05.121Z

http://example.com:9090/plugins/restapi/v1/users/yourUserName

Какой оленья кожа выход последний Войти отметка времени

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<user> 
    <username>yourUserName</username> 
    <name>yourUserName</name> 
    <email>[email protected]</email> 
    <properties/> 
</user> 

Мы использовали REST API Plugin

Любая помощь будет appriciate.

+0

Как вы управляете присутствием? Вы явно отправляете присутствие во время входа в систему? – MrPk

+0

@MrPk благодарит за интерес. Кстати, функциональность общения от ios заканчивается, поэтому они управляют присутствием и имеют дело с сервером, когда приложение перейдет в фоновое состояние или убьет состояние. если пользователь убивает или уходит в фоновое приложение, пользователь будет в автономном режиме. –

+1

По моему опыту, если вы разрешите Openfire управлять своим файлом без явного присутствия в автономном режиме/онлайн-статусе, Last Activity brokes. Попробуйте отправить также Присутствие, когда вы заходите в фоновый режим или перед тем, как убить приложение, и попробуйте то, что вы получите – MrPk

ответ

1

User Status Plugin выполнил эту работу!

Плагин состояния пользователя - плагин для сервера Openfire XMPP для сохранения статуса пользователя в базе данных.

Этот плагин автоматически сохраняет последний статус (наличие, IP-адрес, время входа и выхода из системы) на пользователя и ресурс в таблицу userStatus в базе данных Openfire.

При необходимости вы можете архивировать записи о состоянии пользователя (IP-адрес, время входа в систему и время выхода из системы) в течение указанного времени. Записи истории хранятся в таблице userStatusHistory. Параметры архивации истории можно настроить на странице «Настройки состояния пользователя», которую вы найдете на вкладке «Сервер» в консоли администратора Openfire.

Плагин доступен на http://maven.reucon.com/projects/public/user-status

По данным веб-сайта проекта, в настоящее время этот плагин работает только с MySQL.

Таким образом, отправляя условие, основанное на времени выхода и времени отправки сообщения, отправляются.