Динамические Геозоны

Fluentbase представляет новую мощную функцию, которая называется динамические геозоны. Это позволяет в режиме реального времени отслеживать, когда один или несколько движущихся объектов находятся рядом друг с другом.

Пара общих случаев использования:

  • Услуги по подбору автомобиля: Мгновенно получать уведомления, когда транспортное средство находится рядом с кем-то, ожидающим, чтобы его забрали, или когда человек приближается к транспортному средству, или когда транспортное средство находится рядом с другими транспортными средствами в парке.
  • Социальная близость: Очень полезно, когда вам нужно проверить, находятся ли два пользователя рядом друг с другом, без необходимости постоянно делать запросы в базу данных. Простой пример:

$ NEARBY people FENCE ROAM people * 5000

Это откроет подвижную границу на группы людей. Граница следит за тем, чтобы любой объект находился в пределах 5000 метров от любого другого объекта из той же группы.

Для теста откройте два терминала:

Terminal 1

Подключитесь к серверу Fluentbase и введите команду fence.

$ telnet localhost 9470 NEARBY people FENCE ROAM people * 5000 +OK

Terminal 2

Добавьте две точки в группу людей. Вторая команда SET вызовет событие fence, которое появится в другом терминале.

$ telnet localhost 9470 SET people bob POINT 33.01 -115.01 SET people alice POINT 33.02 -115.02

Событие появится в терминале 1 и будет выглядеть так:

{ «command»:»set», «detect»:»roam», «hook»:»», «key»:»people», «id»:»alice», «time»:»2016-05-24T09:19:44.08649461-07:00″, «object»:{«type»:»Point»,»coordinates»:[-115.02,33.02]}, «nearby»:{ «key»:»people», «id»:»bob», «meters»:1451.138152186708 } }

Что показывает, что объект Алиса был обновлен, и что объект Боб находится на расстоянии 1451 метра друг от друга.

Немного другой пример:

# Watch alice and bob for when they are within 100 meters of each other. NEARBY people MATCH alice FENCE ROAM people bob 100 # Watch objects beginning in ‘a’ for when they within 100 meters of any object in the friends collection. NEARBY people MATCH a* FENCE ROAM friends * 100

И если вы используете веб-сокеты, вы можете назначить эту границу следующим образом:

$SETHOOK myhook http://10.0.1.5/hook NEARBY people FENCE ROAM people * 5000

EnglishРусский