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

+22
3.92K
День добрый,

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

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

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




Иллюстрация

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

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

Минусы

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

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

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

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



И пачка вопросов, спрячу их под спойлер
Работая над мобильной перепиской я задумался над созданием более навороченной переписки и на сайте (пока отгоняю эти мысли, в приоритете запустить мобильное приложение). Чего мне хватает сейчас в том же NeoMessenger:
1. Общего чата, мгновенные сообщения без записи в базу данных (это я могу реализовать только для мобильного приложения, без участия веб версии сайта — тогда получится, что пользователи за компьютером будут несколько ущемлены)
2. Переписка в группе, как в Whatsapp или Telegram — когда пользователь создает группу для общения и добавляет туда кого-то еще.

Эти пункты уже сложно будет реализовать в формате дополнения (без влезания в чужой код), вопрос в том — надо ли оно? — или и так всем нравится и не стоит этим заниматься..
0
Dorimen Dorimen 6 лет назад #
1. А они могут существовать параллельно эти два варианта обмена сообщениями?
2. Можно ли в Ваше решение внедрить шифрование переписки?
0
Dorimen Dorimen 6 лет назад #
Мне лично реально не хватает в НеоМессенджере групповых переписок. Обращался к автору с этим предложением - но он пока не выходит на связь и судя по своему статусу еще не скоро вернется к развитию компонента (и не факт, что вообще планирует делать групповые переписки).
0
MiMoHOD MiMoHOD 6 лет назад #
@SmartControl:
Чего мне хватает сейчас в том же NeoMessenger
Вы имели ввиду НЕ хватает?
Если да, то не хватает оба варианта и особенно групповой переписки.
0
Kvazar Kvazar 6 лет назад #
А для тех, кто уже купил платный пакет дополнений, будут какие то бонусы? zst
0
Dorimen Dorimen 6 лет назад #
Я тоже купил. Но это же другой разработчик. ) Уже хорошо, что довольно перспективный компонент получил неожиданное развитие.
0
Kvazar Kvazar 6 лет назад #
Но это же другой разработчик. )
А я и не заметил)
0
Pocus Pocus 6 лет назад #
@SmartControl, давно хотел спросить вас насчет PUSH уведомлений. Вот у вас есть приложение, (но нет соответствующей записи в блоге/форуме, иначе спросил бы там) такой же механизм есть у Neo-меccеджера (или у платного расширения, точно не знаю), как эти два механизма будут согласовываться между собой и с ПУШ-ами в мобильном приложении?

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

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

А вообще, всё это - дело второстепенное. Вы не отвлекайтесь от scmobileapp, там работы непочатый край. А потом еще поддержка, развитие...
0
SmartControl SmartControl 6 лет назад #
Отвечу одним сообщением на все вопросы

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 связаны с мобильным приложением, поэтому на них нужно было отвлечься. Без них переписка с телефона и с компьютера была бы неполноценной.
0
Pocus Pocus 6 лет назад #
@SmartControl:
Мне кажется, вы что-то путаете. Я не нашел у Neo такого - сейчас посмотрел описание к дополнению и к самому мессенджеру. Пушей там не вижу.
Я не знаю. В настройках NM и платного дополнения тоже ничего не вижу.
Но если запустить месседжер, то появляется предупреждение браузера, точно такое-же как в вашем ПУШ-е
Скриншот
Ссылка "Подробнее..." ведёт на станицу Веб Push-уведомления в Firefox
0
SmartControl SmartControl 6 лет назад #
Да, все ясно. Я нашел это в коде.
Это локальные уведомления, их делает сам NeoMessenger при получении сообщений. Это не те пуши, которые можно слать с удаленного сервера.
0
lakomet lakomet 6 лет назад #
@SmartControl:
Правильно - для каждого сообщества на сайте должна быть группа в переписке.
У групп есть стена, если её не выводить на странице группы, а упаковать в мессенджер?
+1
Dorimen Dorimen 6 лет назад #
Тихо, стена - э то стена, чат - это чат.
+1
SmartControl SmartControl 6 лет назад #
Не то. Стена - это и правда стена) В смысле она для других целей. А тут речь идет про болталку для группы.
0
Dorimen Dorimen 6 лет назад #
1. У меня, например, стоит https. С ФСБ проблем нет. Но хочется уберечь переписку пользователей в случае взлома БД или админского аккаунта. По этому, наверное, шифровать нужно в БД.
2. Отличная идея с групповой перепиской для групп сообществ. Но неплохо было бы иметь возможность создать групповую переписку просто для произвольных людей.
3. Про параллельность существования понял. Сегодня куплю решение Ваше, чтобы поддержать развитие, так как заинтересован в этом. Напишите, пожалуйста, WMR
0
Колян Колян 6 лет назад #
Обязательно прикуплю дополнение, интересно будетли оно работать с дополнением http://instantcms.ru/addons/neomessenger-extends.html Если нагрузка снижена, круто былоб получить пересылку файлов, чтоб можно было настраивать размер и расширения доступных для пересылки файлов.
0
Колян Колян 6 лет назад #
Да и ещё, желательно чтоб эти файлы загружались и скачивались не сервера где сама cms живёт, чтоб можно было выбрать в настройках куда и откуда их можно грузить.
0
SmartControl SmartControl 6 лет назад #
Колян:
Обязательно прикуплю дополнение, интересно будетли оно работать с дополнением
Работать будет отлично, потому что исходный код NeoMessenger не тронут. Все работает так же, как и было. Просто стало больше онлайна, мгновенных обновлений.

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

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



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

0
Колян Колян 6 лет назад #
Установил, настроил, работает Fire Messages. Респект и уважуха автору!...

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

И пересылку файлов организовать и вообще красота получится. Ну отсылает он картинки почему нельзя нучить меседжер файлы отсылать? sad
0
Pocus Pocus 6 лет назад #
Ну зачем он постоянно пикает
Звук отключается пользователем. Там, в окне мессенжера, есть кнопочка.
Насчет файлов - Не уверен что сработает, но попробуйте в расширенной версии NM добавить разрешенные типы файлов (сейчас там .jpeg, .jpg, .png, .bmp).
0
Колян Колян 6 лет назад #
Насчет файлов - Не уверен что сработает, но попробуйте в расширенной версии NM добавить разрешенные типы файлов (сейчас там .jpeg, .jpg, .png, .bmp).
Добавил zip, появляется окно в браузере, вы не можете отсылать файлы этого типа.
По поводу звука, вспомнил pin както делал мне чтоб один раз пикало и если следующее приходит тоже пикало, но пикало всегда только новое сообщение, у него спрошу как он это делал... сюда скину мануал.
0
SmartControl SmartControl 6 лет назад #
Установил, настроил, работает Fire Messages. Респект и уважуха автору!...
Спасибо, это радует что все завелось без проблем.

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

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

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

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

По поводу пересылки файлов, ниже человек отписал что есть какоето дополнение, посмотрим.
0
Dorimen Dorimen 6 лет назад #
Для пересылки файлов нужно купить расширение для НИ
0
Dorimen Dorimen 6 лет назад #
Для НеоМессенджер ) У меня есть - прекрасно пересылает файлы
0
Колян Колян 6 лет назад #
Мне известны два дополнения http://instantcms.ru/addons?title=neo&branch=2 для Neomessengera, что у Вас за дополнение заточенное под пересылку файлов, сколько стоит, где как купить?
0
Dorimen Dorimen 6 лет назад #
Именно так.

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

0
Dorimen Dorimen 6 лет назад #
А настройках можно указать, какие типы файлов можно грузить:

0
Колян Колян 6 лет назад #
zip, mp3, pdf... попробуйте отправить, у меня тоже стоит это дополнение...
0
Dorimen Dorimen 6 лет назад #
Точно. Жаль ) Хотя мне никогда не потребовалось пересылать что-то кроме картинок, поэтому не думал, что там есть проблемы )
0
Dorimen Dorimen 6 лет назад #
Кстати, надыбал тут https://exticms.com/ext/crystalchat
0
SmartControl SmartControl 6 лет назад #
у вас он стоит? - почитал описание. Он так же, как и обычный неомессенджер может убить базу данных при нормальной активности.. По умолчанию там обновление раз в пять секунд. То есть каждый пользователь раз в пять секунд шлет на сервер запрос на обновление, даже если новых сообщений не было. Если уменьшить таймаут - будет хуже (сервер может не выдержать). Если увеличить - придется долго ждать сообщений..

Это можно сделать через FireBase - тогда вообще уйдут пустые обновления. нагрузка на сервер снизится во много раз. Можно даже вообще сделать без участия базы данных сайта. Все сообщения хранить в облаке.
0
Dorimen Dorimen 6 лет назад #
Я только обнаружил этот компонент. Меня заинтересовало то, чего нет у НеоМессенджера. Написал автору сообщение. Посмотрим, может быть возьму его для теста. Ваше замечание дельное. Если у меня появится этот компонент - попробуем оптимизировать нагрузку через FireBase?
0
SmartControl SmartControl 6 лет назад #
Я не могу сказать насколько это будет сложно, кода не видел. А в чем основные фишки из того, чтобы неомессенджере нет?
0
Dorimen Dorimen 6 лет назад #
тут про фишки: https://exticms.com/ext/crystalchat
0
Pocus Pocus 6 лет назад #
Кроме группового чата новых фишек не увидел. Платить на это 25usd вряд ли стоит.
SmartControl рано или поздно запилит свой мессенжер и для сайта, и для мобильного приложения. Вот там будут не то что фишки, а целые кегли!
Подождите немного, коллективное ТЗ уже сформировали чуть выше в этом посте.
0
Dorimen Dorimen 6 лет назад #
не знал, что уже идет работа над мессенджером (чатом) от SmartControl
0
SmartControl SmartControl 6 лет назад #
Да я читал это.. мне интересно, что именно вас зацепило.

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

А если они покрывают даже 95% потребностей, из-за оставшихся пяти писать ещё одну переписку не возьмусь..
0
Dorimen Dorimen 6 лет назад #
Меня больше всего интересует коллективный чат (включая и чат для групп) и в меньшей степени пересылка кроме фоток.
0
Aleks Aleks 6 лет назад #
Делайте,учтите все попрошайки, с удовольствием купим.
Сделайте индивидуальную настойку,не только цвета,но и формы кнопок (гибкие настройки меню) -чтобы пользователь,после установки мог настроить мессенджер под дизайн своего сайта
0
Нико Нико 6 лет назад #
Если еще отчет о доставке или что сообщения прочитали было бы супер.
0
SmartControl SmartControl 6 лет назад #
Так это же есть в коробке ИнстантСМС, и в neomessenger тоже. Отмечаются прочитанные сообщения.

Еще от автора

Stylik - визуальный редактор CSS стилей
Всем привет, Это первый компонент из серии (Шаблон + Лендинг + Редактор). Он позволяет кастомизицировать любой шаблон под InstantCMS 2.
Smart Шаблон на Bootstrap 4, Первое знакомство
Приветствую. В этом шаблоне нет привычной заранее заданной схемы позиций. Любая схема создается вручную за пару минут.
Загрузка с Google Images и Релевантные видео Youtube
Приветствую, В этом посте расскажу сразу про две доработки.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.