Contacts list
Contact Info
Contact activity
Me
Places
Веб-сокет соединение
ws://comet.gdeseychas.ru:8088/channel/39ed3c51ea962c6f9ad5c34339cd30a1
WebSocket используется для мгновенной доставки сообщений (запросов и позиций) на подключенные клиенты (веб-браузер или приложение). А также для организации трекинга позиции в режиме реального времени. Для организации соединения на сервере используется фреймворк Atmosphere, который также позволяет соединяться через другие типы Comet-соединений (помимо WebSocket).
Канал :
channel (обязательный) | 39ed3c51ea962c6f9ad5c34339cd30a1 - id канала для текущего пользователя. Его можно получить через API метод: GET /api/v1/users/me (поле 'code') |
Push-Сообщение
Подписавшись на канал, можно получать сообщения от контактов сразу после отправки
(если соединение установлено, то среднее время доставки 1-2 секунды).
Типы событий: checkin, request, delivered, read.
Пример входящего сообщения
{
"message":"Вика: Я здесь - площадь Сытнинская, 2, СПб",
"counter":"1",
"picture":"http://gdeseychas.ru/img/vika.jpg",
"time":"1376731289117",
"address":"площадь Сытнинская, 2, СПб",
"event":"checkin",
"name":"Вика",
"userId":"5",
"lng":"30.3105",
"lat":"59.9567"
}
Tracking
Сокет-соединение также используется для передачи и получения координат в Online-режиме. Сообщения отправляются в обе стороны и имеют одинаковый формат.
Пример сообщения-позиции
[ "point",412, 1215, 59.9567, 30.3105, 15, 49 ]
Пример ping-сообщения
[ "ping", 412, 1215 ]
Формат
Сообщение передается ввиде JSON-массива:
[
<тип сообщения(point,ping)>",
<id текущего пользователя>,
<id контакта>,
<долгота>, <широта>,
<точность в м>,
<скорость в км>
]
- Сообщения с координатами необходимо отправлять при каждом изменении позиции,
но не чаще чем раз в 500мс.
- Координаты с точностью более 99м (GSM координаты) отправлять не нужно.
- Пока установлено соединение необходимо не реже, чем раз в 5 секунд слать сообщение типа ping
(в том случае если координата не меняется дольше 5 секунд).