Fire Messages - мгновенные сообщения для InstantCMS 2*, дополнение для NeoMessenger 2.X

1038
День добрый,

Дополнение превращает обычный NeoMessenger (бесплатный мессенджер для InstantCMS 2) в систему мгновенных сообщений с обновлением в реальном времени. Для этого используется облачная база данных Firebase. Код самого мессенджера не затрагивается.

Предыстория или Как родилась идея

Внедряю в мобильное приложение переписку и столкнулся с тем, что между пользователями приложения сообщения летают мгновенно, а десктопным пользователям приходится ждать установленного периода обновления (обычно 15 секунд). Это дополнение призвано уравнять возможности мобильных и десктопных пользователей сайта, а так же снизить нагрузку на сервер, убрав ненужные запросы.



Что получилось в итоге

Плюсы использования дополнения

1. Сообщения будут долетать почти мгновенно, без тайм-аутов в 15-30 секунд.
2. Снизится нагрузка на сайт за счет избавления от пустых обращений к серверу — то есть периодических запросов с вопросом о новых сообщениях. Запросы серверу будут только тогда, когда новые сообщения точно есть.
3. Дополнение можно будет использовать совместно с мобильным приложением SmartApp (релиз намечен на осень 2017) для мгновенной доставки сообщений мобильным пользователям и так же мгновенно получая от них ответ, сидя в десктопной версии сайта.

Минусы

1. Пользователи будут больше общаться (писать больше сообщений). Размер базы данных будет расти быстрее.
2. Дополнение платное - стоимость 649руб за версию не привязанную к домену (можно поставить на все свои сайты).

Аккаунты для демо сайта

test@test.ru (пароль testtest)
test2@test.ru (пароль test2test2)

Видео презентация



И пачка вопросов, спрячу их под спойлер
Спойлер
Мобильное приложение для InstantCMS2. Публичная версия. | Релиз компонента Smart Slider, бесплатная версия
Комментарии (43)
Dorimen 26 августа 2017 в 23:35 0
no avatar
1. А они могут существовать параллельно эти два варианта обмена сообщениями?
2. Можно ли в Ваше решение внедрить шифрование переписки?
Dorimen 27 августа 2017 в 00:14 0
no avatar
Мне лично реально не хватает в НеоМессенджере групповых переписок. Обращался к автору с этим предложением - но он пока не выходит на связь и судя по своему статусу еще не скоро вернется к развитию компонента (и не факт, что вообще планирует делать групповые переписки).
DzurDzuk 27 августа 2017 в 00:24 0
small user social cms
@SmartControl:
Чего мне хватает сейчас в том же NeoMessenger
Вы имели ввиду НЕ хватает?
Если да, то не хватает оба варианта и особенно групповой переписки.
Kvazar 27 августа 2017 в 01:27 0
small user social cms
А для тех, кто уже купил платный пакет дополнений, будут какие то бонусы? zst
Dorimen 27 августа 2017 в 06:32 0
no avatar
Я тоже купил. Но это же другой разработчик. ) Уже хорошо, что довольно перспективный компонент получил неожиданное развитие.
Kvazar 27 августа 2017 в 12:27 0
small user social cms
Но это же другой разработчик. )
А я и не заметил)
Pocus 27 августа 2017 в 07:45 0
small user social cms
@SmartControl, давно хотел спросить вас насчет PUSH уведомлений. Вот у вас есть приложение, (но нет соответствующей записи в блоге/форуме, иначе спросил бы там) такой же механизм есть у Neo-меccеджера (или у платного расширения, точно не знаю), как эти два механизма будут согласовываться между собой и с ПУШ-ами в мобильном приложении?

Второй вопрос по текущей теме. Не совсем понятно, почему (цитата) "размер базы будет расти быстрее", если мы переезжаем на Firebase?
И еще, если не ошибаюсь, Firebase не предназначен для хранения файлов? Тогда, как быть с файловыми вложениями? Особенно если выставить в NM тайм 600000 секунд.

И по вашим вопросам, что включить в "будущий" месседжер.
* Общий чат без записи в БД - не уверен что нужен.
* Группы для общения нужны. Единственное, я бы попросил, чтобы для каждой группы на сайте (сообщества) автоматически создавалась бы и группа в менеджере. Естественно с возможностью подписки только участникам сообщества.
* Сейчас к NM подключен "Черный список" (от того же автора), который помимо месседжера действует в профилях и комментариях. Хотелось бы сохранить этот функционал.
* В NM есть массовая рассылка группам пользователей (не сообществам) сообщений или уведомлений. Здесь это тоже нужно, но с более тонким таргетингом, с целью рекламы. Ну и, соответственно, будет нужен компонент для создания/контроля этих сообщений, привязанный к биллингу.

А вообще, всё это - дело второстепенное. Вы не отвлекайтесь от scmobileapp, там работы непочатый край. А потом еще поддержка, развитие...
@SmartControl 27 августа 2017 в 10:58 0
small user social cms
Отвечу одним сообщением на все вопросы

Dorimen:
1. А они могут существовать параллельно эти два варианта обмена сообщениями?
Я не совсем понял про "два варианта" - дополнение не добавляет новый вариант, оно добавляет к текущему варианту мгновенности - то есть обновление сообщений в режиме онлайн. Сами сообщения летают от пользователя на сервер и к другому пользователю средствами NeoMessenger, я в его код не вмешивался.

Dorimen:
2. Можно ли в Ваше решение внедрить шифрование переписки?
Мы немного обсуждали это в посте про приложение.. Неужели так актуально?) Тогда несколько вопросов от меня
1. Шифруем только в пути? - или в базе данных сервера тоже?
2. От кого шифруем? - только от третьих лиц или и от сервера тоже? - то есть чтобы и администратор и хостер не смогли прочитать зашифрованные таблицы в БД.

И решение - если только в пути и только от перехвата, то просто перейдите на https - все пакеты будут зашифрованы и это касается не только сообщений. А если прям совсем жестко, то это будет долго и дорого (по времязатратам).. И снова - это прям так актуально? - от ФСБ надо спрятать?

Dorimen:
Мне лично реально не хватает в НеоМессенджере групповых переписок. Обращался к автору с этим предложением
Это непростая штука в плане реализации. Я тоже об этом думаю - это уже такая привычная вещь.. К хорошему быстро привыкаешь)

Kvazar:
А для тех, кто уже купил платный пакет дополнений, будут какие то бонусы?
Бонусы от меня на что-то другое - возможно. А если про дополнение от автора NeoMessenger и бонус на текущее от меня - то нет, тут нет никакой связи. Да и это дополнение для всех, оно ставится на бесплатную версию и добавляет ей огонька)

DzukDzuk:
Вы имели ввиду НЕ хватает? Если да, то не хватает оба варианта и особенно групповой переписки.
Да, мысли убегают вперед и руки с клавиатурой не успевают.. именно "не хватает". Над чатом подумаю - опять-таки варианты есть. Либо самый простой, но без нагрузки на базу - тогда я выложу его бесплатно. Либо хороший с большим количеством вариантов кастомизции и немного платный. Это уже на сентябрь, проблемы большой не вижу.

Pocus:
насчет PUSH уведомлений. Вот у вас есть приложение, (но нет соответствующей записи в блоге/форуме, иначе спросил бы там) такой же механизм есть у Neo-меccеджера (или у платного расширения, точно не знаю),
На форуме был пост небольшой, а на блог тогда кармы не хватало. Мне кажется, вы что-то путаете. Я не нашел у Neo такого - сейчас посмотрел описание к дополнению и к самому мессенджеру. Пушей там не вижу.

Pocus:
как эти два механизма будут согласовываться между собой и с ПУШ-ами в мобильном приложении
Хороший вопрос, главное своевременный. Я хотел писать новый компонент для пушей на мобильном, но логичней и правильней использовать эту разработку - тогда все данные будут в одном месте. И для дестопных и для мобильный пользователей. В этом случае - согласовываться будут отлично.

Pocus:
Второй вопрос по текущей теме. Не совсем понятно, почему (цитата) "размер базы будет расти быстрее", если мы переезжаем на Firebase?
Не переезжаем - Firebase обеспечивает только мгновенность доставки, сами сообщения в ней не хранятся. Будет расти быстрее ваша база, на вашем сервере - если ваши пользователи будут быстрее писать в нее новые сообщения, легкая ирония)

Pocus:
И еще, если не ошибаюсь, Firebase не предназначен для хранения файлов? Тогда, как быть с файловыми вложениями? Особенно если выставить в NM тайм 600000 секунд.
Все данные хранятся только на вашем сервере, Firebase только для работы в realtime (в режиме реального времени, мгновенных обновлений). Сообщения будут работать точно так же - все что делал NeoMessenger будет работать точно так же.

Pocus:
* Группы для общения нужны. Единственное, я бы попросил, чтобы для каждой группы на сайте (сообщества) автоматически создавалась бы и группа в менеджере. Естественно с возможностью подписки только участникам сообщества.
Круто! А вот это мне в голову не приходило. Правильно - для каждого сообщества на сайте должна быть группа в переписке. Плюс должна быть возможность создать свою группу по переписке без создания сообщества (наверно так.. это надо обсуждать - если каждый пользователь может создать сообщество и добавить туда друзей, то может на сообществах все и построить)

Pocus:
А вообще, всё это - дело второстепенное. Вы не отвлекайтесь от scmobileapp, там работы непочатый край. А потом еще поддержка, развитие...
Да, согласен. Новая переписка - это большой проект. А вот Fire messages связаны с мобильным приложением, поэтому на них нужно было отвлечься. Без них переписка с телефона и с компьютера была бы неполноценной.
Pocus 27 августа 2017 в 11:34 0
small user social cms
@SmartControl:
Мне кажется, вы что-то путаете. Я не нашел у Neo такого - сейчас посмотрел описание к дополнению и к самому мессенджеру. Пушей там не вижу.
Я не знаю. В настройках NM и платного дополнения тоже ничего не вижу.
Но если запустить месседжер, то появляется предупреждение браузера, точно такое-же как в вашем ПУШ-е
Скриншот
Ссылка "Подробнее..." ведёт на станицу Веб Push-уведомления в Firefox
@SmartControl 27 августа 2017 в 11:57 0
small user social cms
Да, все ясно. Я нашел это в коде.
Это локальные уведомления, их делает сам NeoMessenger при получении сообщений. Это не те пуши, которые можно слать с удаленного сервера.
lakomet 27 августа 2017 в 12:06 0
small user social cms
@SmartControl:
Правильно - для каждого сообщества на сайте должна быть группа в переписке.
У групп есть стена, если её не выводить на странице группы, а упаковать в мессенджер?
Dorimen 27 августа 2017 в 12:09 +1
no avatar
Тихо, стена - э то стена, чат - это чат.
@SmartControl 27 августа 2017 в 12:15 +1
small user social cms
Не то. Стена - это и правда стена) В смысле она для других целей. А тут речь идет про болталку для группы.
Dorimen 27 августа 2017 в 12:07 0
no avatar
1. У меня, например, стоит https. С ФСБ проблем нет. Но хочется уберечь переписку пользователей в случае взлома БД или админского аккаунта. По этому, наверное, шифровать нужно в БД.
2. Отличная идея с групповой перепиской для групп сообществ. Но неплохо было бы иметь возможность создать групповую переписку просто для произвольных людей.
3. Про параллельность существования понял. Сегодня куплю решение Ваше, чтобы поддержать развитие, так как заинтересован в этом. Напишите, пожалуйста, WMR
Колян 30 августа 2017 в 21:41 0
small user social cms
Обязательно прикуплю дополнение, интересно будетли оно работать с дополнением http://addons.instantcms.ru/addons/neomessenger-extends.html Если нагрузка снижена, круто былоб получить пересылку файлов, чтоб можно было настраивать размер и расширения доступных для пересылки файлов.
Колян 30 августа 2017 в 21:57 0
small user social cms
Да и ещё, желательно чтоб эти файлы загружались и скачивались не сервера где сама cms живёт, чтоб можно было выбрать в настройках куда и откуда их можно грузить.
@SmartControl 30 августа 2017 в 22:07 0
small user social cms
Колян:
Обязательно прикуплю дополнение, интересно будетли оно работать с дополнением
Работать будет отлично, потому что исходный код NeoMessenger не тронут. Все работает так же, как и было. Просто стало больше онлайна, мгновенных обновлений.

Если нагрузка снижена, круто былоб получить пересылку файлов, чтоб можно было настраивать размер и расширения доступных для пересылки файлов. Да и ещё, желательно чтоб эти файлы загружались и скачивались не сервера где сама cms живёт, чтоб можно было выбрать в настройках куда и откуда их можно грузить.
Связи не вижу если честно) Нагрузка нагрузкой. а файлы файлами. Но я это уже добавить не могу - это вопрос к автору NeoMessenger. Такое дополнение не влезая в его код уже сделать не получится.
Колян 30 августа 2017 в 22:48 0
small user social cms
Связи не вижу если честно)
Я не спец, но думаю если человек 100 юзеров начнут пересылать (загружать) файлы метров по 20 каждый и 100 юзеров скачивать то сервер где стоит cms может наверное повиснуть и если такая опасность есть, пусть ляжет не весь ресурс сразу а само фыайлохранилище на отдельном сервере.
Такое дополнение не влезая в его код уже сделать не получится
Подождём конечно ещё месяцок, другой (обещался написать пересылку файлов) а если не появиться... придётся или залезть или с ноля написать, то что он написал+пересылку файлов, получится новое дополнение, или уж сговориться с ним чтоб код открытый дал и раз сам не может (в силу препятствий непреодолимой силы) получал с продаж дополнения с пересылкой файлов свою долю, пусть оно стоит 1000 или 2000. решать вопрос надо однозначно. Сидим переписываемся, понадобился ворд файл или пдф или архив какой и полез на почту или в телпегу или в облако какое.... неудобно просто капец.
Dorimen 12 сентября 2017 в 20:27 0
no avatar
Пользуясь случаем хочу спросить - есть ли разница, на какой позиции находится событие по сравнению с другими событиями:

например, тут события компонента "НеоМессенджер" и "Черный список" находятся аж на хрен знает каком месте... Можно предположить, что если событие, которое по идее должен заброкировать "Черный список", находится перед ним выше, то оно не будет заблокировано?



или такие события:

Колян 13 сентября 2017 в 11:26 0
small user social cms
Установил, настроил, работает Fire Messages. Респект и уважуха автору!...

один момент напрягает в меседжере. Ну зачем он постоянно пикает при перезагрузке страницы, если не прочёл сообщение, ну пикнул один раз а дальше пусть моргает во вкладке себе на здоровье, зачем пикать то... может кто вылечит это пикание при перезагрузки страницы если сообщение непрочтено?

И пересылку файлов организовать и вообще красота получится. Ну отсылает он картинки почему нельзя нучить меседжер файлы отсылать? sad
Pocus 13 сентября 2017 в 11:54 0
small user social cms
Ну зачем он постоянно пикает
Звук отключается пользователем. Там, в окне мессенжера, есть кнопочка.
Насчет файлов - Не уверен что сработает, но попробуйте в расширенной версии NM добавить разрешенные типы файлов (сейчас там .jpeg, .jpg, .png, .bmp).
Колян 13 сентября 2017 в 16:18 0
small user social cms
Насчет файлов - Не уверен что сработает, но попробуйте в расширенной версии NM добавить разрешенные типы файлов (сейчас там .jpeg, .jpg, .png, .bmp).
Добавил zip, появляется окно в браузере, вы не можете отсылать файлы этого типа.
По поводу звука, вспомнил pin както делал мне чтоб один раз пикало и если следующее приходит тоже пикало, но пикало всегда только новое сообщение, у него спрошу как он это делал... сюда скину мануал.
@SmartControl 13 сентября 2017 в 12:06 0
small user social cms
Установил, настроил, работает Fire Messages. Респект и уважуха автору!...
Спасибо, это радует что все завелось без проблем.

может кто вылечит это пикание при перезагрузки страницы если сообщение непрочтено?
И пересылку файлов организовать и вообще красота получится. Ну отсылает он картинки почему нельзя нучить меседжер файлы отсылать?

Это уже вопросы к автору (хотя вижу, что он давненьку тут появлялся), я его софт допиливать не могу - это как-то неправильно) Разве что подсказать в какой строчке что поправить.

Расширенной версии у меня нет, по файлам не подскажу - руками добавить расширения может помочь. А убрать звук по умолчанию можно в файле

/templates/default/controllers/neomessenger/js/neomessenger.js
Код PHP:
  1.  
  2. this.getSoundEnabled = function() {
  3. var soundEnabled = app.ls.get('soundEnabled');
  4. if (soundEnabled === null) {
  5. soundEnabled = true;
  6. this.setSoundEnabled(soundEnabled);
  7. }
  8. return soundEnabled;
  9. };
  10.  
true заменить на false и по умолчанию он будет отключен - должно сработать (если пользователь ничего не менял - он будет отключен). Эти настройки в админку не вынесены, поэтому только так. Ну и пользователь руками может сам себе включить/выключить.
Колян 13 сентября 2017 в 16:24 0
small user social cms
Совсем звук отключать не выход... тем более пользователь может это сделать сам.

По поводу пересылки файлов, ниже человек отписал что есть какоето дополнение, посмотрим.
Dorimen 13 сентября 2017 в 15:32 0
no avatar
Для пересылки файлов нужно купить расширение для НИ
Dorimen 13 сентября 2017 в 15:33 0
no avatar
Для НеоМессенджер ) У меня есть - прекрасно пересылает файлы
Колян 13 сентября 2017 в 16:22 0
small user social cms
Мне известны два дополнения http://addons.instantcms.ru/addons?title=neo&branch=2 для Neomessengera, что у Вас за дополнение заточенное под пересылку файлов, сколько стоит, где как купить?
Dorimen 13 сентября 2017 в 16:54 0
no avatar
Именно так.

У меня установлен Пакет расширения для компонента "Neomessenger" и файлы прескрано пересылаются (в том числе и картинки - они вообще сразу видны в переписке).

Dorimen 13 сентября 2017 в 16:55 0
no avatar
А настройках можно указать, какие типы файлов можно грузить:

Колян 13 сентября 2017 в 17:22 0
small user social cms
zip, mp3, pdf... попробуйте отправить, у меня тоже стоит это дополнение...
Dorimen 13 сентября 2017 в 17:40 0
no avatar
Точно. Жаль ) Хотя мне никогда не потребовалось пересылать что-то кроме картинок, поэтому не думал, что там есть проблемы )
Dorimen 13 сентября 2017 в 17:44 0
no avatar
Кстати, надыбал тут https://exticms.com/ext/crystalchat
@SmartControl 13 сентября 2017 в 18:01 0
small user social cms
у вас он стоит? - почитал описание. Он так же, как и обычный неомессенджер может убить базу данных при нормальной активности.. По умолчанию там обновление раз в пять секунд. То есть каждый пользователь раз в пять секунд шлет на сервер запрос на обновление, даже если новых сообщений не было. Если уменьшить таймаут - будет хуже (сервер может не выдержать). Если увеличить - придется долго ждать сообщений..

Это можно сделать через FireBase - тогда вообще уйдут пустые обновления. нагрузка на сервер снизится во много раз. Можно даже вообще сделать без участия базы данных сайта. Все сообщения хранить в облаке.
Dorimen 13 сентября 2017 в 18:04 0
no avatar
Я только обнаружил этот компонент. Меня заинтересовало то, чего нет у НеоМессенджера. Написал автору сообщение. Посмотрим, может быть возьму его для теста. Ваше замечание дельное. Если у меня появится этот компонент - попробуем оптимизировать нагрузку через FireBase?
@SmartControl 13 сентября 2017 в 18:27 0
small user social cms
Я не могу сказать насколько это будет сложно, кода не видел. А в чем основные фишки из того, чтобы неомессенджере нет?
Dorimen 13 сентября 2017 в 18:29 0
no avatar
тут про фишки: https://exticms.com/ext/crystalchat
Pocus 13 сентября 2017 в 18:46 0
small user social cms
Кроме группового чата новых фишек не увидел. Платить на это 25usd вряд ли стоит.
SmartControl рано или поздно запилит свой мессенжер и для сайта, и для мобильного приложения. Вот там будут не то что фишки, а целые кегли!
Подождите немного, коллективное ТЗ уже сформировали чуть выше в этом посте.
Dorimen 13 сентября 2017 в 18:56 0
no avatar
не знал, что уже идет работа над мессенджером (чатом) от SmartControl
@SmartControl 13 сентября 2017 в 18:47 0
small user social cms
Да я читал это.. мне интересно, что именно вас зацепило.

Я думал о собственной разработке для переписки, но возьмусь только если у меня будут действительно крутые идеи по улучшению, чтобы результат был сильно лучше текущих решений. Делать ещё один кристалчат или неомессенджер не интересно..

А если они покрывают даже 95% потребностей, из-за оставшихся пяти писать ещё одну переписку не возьмусь..
Dorimen 13 сентября 2017 в 18:56 0
no avatar
Меня больше всего интересует коллективный чат (включая и чат для групп) и в меньшей степени пересылка кроме фоток.
@Aleks 14 октября 2017 в 09:45 0
small user social cms
Делайте,учтите все попрошайки, с удовольствием купим.
Сделайте индивидуальную настойку,не только цвета,но и формы кнопок (гибкие настройки меню) -чтобы пользователь,после установки мог настроить мессенджер под дизайн своего сайта
Нико 30 сентября 2017 в 17:07 0
small user social cms
Если еще отчет о доставке или что сообщения прочитали было бы супер.
@SmartControl 30 сентября 2017 в 17:47 0
small user social cms
Так это же есть в коробке ИнстантСМС, и в neomessenger тоже. Отмечаются прочитанные сообщения.