Как реализовать уведомления "Прочитано", "Печатает сообщение..." в чате на PubNub

238 views
Skip to first unread message

llliya

unread,
Apr 24, 2015, 8:52:13 AM4/24/15
to ror...@googlegroups.com
Здравствуйте.
Возникла задача сделать стандартные уведомления как "вконтактике" или "вотсапп": собеседник печатает сообщение сейчас, собеседник прочитал ваше сообщение и т.п.
Сам чат написан с помощью очередей сообщений (используя сервис https://www.pubnub.com/).
На бекенде - API на Ruby on Rials.
Фронтенд - Ember и AngularJS приложения (да, две параллельные codebase, не спрашивайте :) ).

Вопрос, как реализовать такой тип нотификаций и через что?
Вот у меня даже идеи нормальной нет в голове как это адекватно сделать. 

Дмитрий Галай

unread,
Apr 25, 2015, 4:53:51 AM4/25/15
to ror...@googlegroups.com
А что вам мешает сделать это через те же WebSockets (в вашем случае уже есть comet от https://www.pubnub.com/)?

llliya

unread,
Apr 28, 2015, 12:56:04 PM4/28/15
to ror...@googlegroups.com
Ничто не мешает. Хотелось бы более конкретных деталей реализации: сделать типа 2 типа сообщений - сервисные и собственно текст и по-разному их обрабатывать на фронте? Как разграничивать типы сообщений, если в сообщении может быть только строка текста, а не хеш параметров?

пятница, 24 апреля 2015 г., 19:52:13 UTC+7 пользователь llliya написал:

Alexey Kuznetsov

unread,
Apr 29, 2015, 10:49:44 AM4/29/15
to ror...@googlegroups.com
Да, но хэш_параметров.to_json => получается JSON. И это тоже строка. Отравляете его, дальше парсите уже объект.
Далее можно отравлять данные по одному каналу или по некоторым типо сообщения идут по /conversation/:conversation_id а системные сообщения по каналу (присоединился к каналу, отсоединился от него, набирает сообщение и т.д.) по  /conversation/:conversation_id/system . Навешиваете разные обработчики на свой канал и все :)


вторник, 28 апреля 2015 г., 19:56:04 UTC+3 пользователь llliya написал:

llliya

unread,
May 2, 2015, 2:43:36 AM5/2/15
to ror...@googlegroups.com
Спасибо. Так и поступим :)

среда, 29 апреля 2015 г., 21:49:44 UTC+7 пользователь Alexey Kuznetsov написал:
Reply all
Reply to author
Forward
0 new messages