Что нам стоит Push построить

Обмен - Обмен с другими системами

Push сервер онлайн обмен

33
Попробовал некоторое время назад, push сообщения, реализованные в платформе. Понравилось, но есть несколько минусов, на примере одной программы сообщений (не буду показывать пальцем), спустя некоторое время, сообщения переставали приходить онлайн, а на компьютере приходили моментально, при этом сами смартфоны звались флагманами. Читал позднее статью, где описывалось, что проблема на стороне смартфонов, что-то вроде технологий энергосбережения, но точно не помню. Также немалый минус доступно только для смартфонов.

Дело было вечером, делать было нечего.

Остановиться, для изобретения велосипеда, на node.js и модуле socket.io

Нет смысла подробно описывать, в интернете очень много информации, что такое node.js

Замечу только, что это небольшое приложение, доступное для windows и linux компьтеров.

Если в двух словах, node.js это скрипт сервер, позволяющий открывать и слушать порты, формировать ответы на пришедшие запросы. По сути своеобразный аналог web серверам apache, IIS. Только проще, легче и быстрее.

Код node.js прост и по сути аналогичен объектам, используемым HTTP сервисами 1С, запрос - ответ. Дополнительный модуль Socket.io  позволяет организовать своего рода пул клиентских соединений.

Самый простой способ продемонстрировать работу Push сервера это «чат», но «чат» слишком простой, поэтому чуть усложнил «хеллоу ворд» до «мессенджера».

 

Архитектура решения «Пушок»:

 

Серверная часть:

1С предприятие (файловая или серверная версия 8.3.6 и выше) - используется в качестве базы данных, и сервера отложенных сообщений.

Node.js – небольшой простой скрипт сервера.

Настройка портов и другой рабочей информации, а также запуск, остановка скрипта сервера node.js автоматизирован. Т.е. хоть содержатся в скрипте, но настраиваются через интерфейс 1С.

 

Клиентская часть:

1С тонкий клиент (8.3.6 и выше), позднее планирую сделать мобильное приложение + service.apk

AddInNativeSIO.dll – Внешняя компонента native api c++, для приема передачи сообщений в 1С предприятие. Пока только x86 windows.

 

На данный момент "мессенджер" пока не является полнофункциональным решением. И по сути служит примером онлайн обмена данными и сообщениями с потверждением отправки. Не претендую на лавры изобретателей :)

Хоть Node.js и был описан в качестве своеобразного "аналога" вебсерверов, но для публикации http сервиса 1С требуется вебсервер apache или IIS. Сервис нужен для обратной связи node.js и 1с, поскольку в внешней компоненте на сервере не используется внешнее событие и полученные данные передать нельзя.

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

Возможно, в дальнейшем добавлю вариант использованияя postgresql, запись данных напрямую из nodejs. В таком варианте таблицы postgresql  будут добавлены как внешние источники данных. Или же можно испольвать nosql базу данных, более приспособленную для хранения json структур.

Добавить в скрипт сервера SSL шифрование несложно, несколько строчек кода и, возможно, еще один модуль добавлю позднее.

 

Пушок 1.1

 

 

  1. Добавил небольшую статистику онлайн в серверной части.

  2. Добавил возможность использования https.

  3. Добавил передачу файлов, пока в один поток 8 мбайт сек. около 30 мб. максимум. 

  4. Добавил версию для мобильного приложения.

  5. Убрал ограничения.

 

Варианты применения по сути безграничны:

  • Управление сервером с мобильного.

  • Персональное облако.

  • Последняя миля современной доставки курьером, ранее видел перемещение между городами.

  • Общие таблицы mxl с онлайн редактированием сразу несколькими пользователями, что-то вроде таблиц гугл.

  • Также возможно вот такое нестандартное использование стандартных казалось бы вещей. 

    Смартфон с NFC, селфи палка и  проездной билет.  Билет используется в качестве метки идентификатора - своего рода аналог штрих кода. При наличии у работника современного смартфона автоматизация склада или ахо может быть очень бюджетной.

 

Логика решения изначально ориентирована на простоту и минимум кода. Но совсем просто не вышло.

Код конфигураций полностью открыт, скрипт javascript  также.

Код сервера конфигурации сервера 1400 строк, клиента 1000, скрипта node.js 300 строк.

Из конфигураций исключен макет https компонент, его выложу позднее.

Установка:

Предполагается что файловая или серверная 1с уже установлена, а также apache или IIS

Загрузить файл PS.cf  конфигурации сервера, в новую базу.

Опубликовать http сервис 1с, установленной в предыдущем пункте конфигурации сервера.

Установить node.js и socket.io, на официальных сайтах и  в интернете масса простых инструкций.

В режиме предприятия, заполнить настройки пуш сервера, добавить пользователей, группы.

Далее можно разворачивать базу из PScl.cf, заполнять параметры подключения к серверной части.

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

Продолжение публикации в Сервер push сообщений “Push0k“ 18.05

Рекомендуется использовать файлы из новой публикации.

33

Скачать файлы

Наименование Файл Версия Размер
PushServer1_1.rar
.rar 2,73Mb
22.02.17
16
.rar 2,73Mb 16 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Steelvan 08.09.18 17:55 Сейчас в теме
Краеугольный камень " Установить node.js и socket.io, на официальных сайтах и в интернете масса простых инструкций. ".

Мы тоже хотели использовать node.js, но надо учитывать уровень подготовки абсолютного большинства 1Сников, для которых даже простое упоминание сторонних технологий переводит разработку в разряд "Посмотреть и забыть".

В идеале, в описании должны быть что-то типа "Все сделано на технологиях 1С, без необходимости устанавливать и настраивать сторонние приложения".
2. PloAl 125 08.09.18 19:44 Сейчас в теме
(1) К слову про технологии:
При публикации базы в web или работе с http или web сервисами, требуется установка и настройка IIS или Apach.
При современной разработке, также нужен MSSQL или postgreSQL.

Вы видели "сервер взаимодействия", там много сторонних приложений.

В продолжении публикации, есть ссылка на образ docker и файл, внутри ubuntu + posgresql + node.js и все необходимые модули.
При наличии быстрого компьютера и интернета, все описанное устанавливается менее пяти минут.
4. acanta 46 09.09.18 13:04 Сейчас в теме
Можно ссылок на ролики ?
5. PloAl 125 09.09.18 13:55 Сейчас в теме
3. Steelvan 09.09.18 12:25 Сейчас в теме
Вы воспринимаете желаемое за действительное.

Желаемое "Все знают и умеют ... образ docker и файл, внутри ubuntu + posgresql + node.js и все необходимые модули за пять минут..."

Действительное "Есть необходимый минимум, который освоит абсолютное большинство. Остальное это посмотреть и забыть."

У меня нет цели что-то доказывать и с чем-то спорить.
Просто я подвел итог 10 загрузок за два года.

Если вас это обижает, извините.
6. PloAl 125 09.09.18 14:01 Сейчас в теме
Вы подводите итог - "Просто я подвел итог 10 загрузок за два года."
Ставите себя на мое место, решаете что меня это может обидеть - "Если вас это обижает, извините."

У меня нет проблем с желаемым и действительным.
Комментарии ваши меня не обижают.
Оставьте свое сообщение