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









Попробовал некоторое время назад, 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

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

8 Comments

  1. Steelvan

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

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

    В идеале, в описании должны быть что-то типа «Все сделано на технологиях 1С, без необходимости устанавливать и настраивать сторонние приложения».

    Reply
  2. PloAl

    (1) К слову про технологии:

    При публикации базы в web или работе с http или web сервисами, требуется установка и настройка IIS или Apach.

    При современной разработке, также нужен MSSQL или postgreSQL.

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

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

    При наличии быстрого компьютера и интернета, все описанное устанавливается менее пяти минут.

    Reply
  3. Steelvan

    Вы воспринимаете желаемое за действительное.

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

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

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

    Просто я подвел итог 10 загрузок за два года.

    Если вас это обижает, извините.

    Reply
  4. acanta

    Можно ссылок на ролики ?

    Reply
  5. PloAl

    (4) Какие ролики?

    Reply
  6. PloAl

    Вы подводите итог — «Просто я подвел итог 10 загрузок за два года.»

    Ставите себя на мое место, решаете что меня это может обидеть — «Если вас это обижает, извините.»

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

    Комментарии ваши меня не обижают.

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

    можете поделиться этой dll

    Reply
  8. PloAl

    Внешняя компонента встроена в конфигурацию (Общие макеты), скачать которую можно из статьи, ссылки снизу. Рекомендую, скачивать из продолжения статьи https://infostart.ru/public/716689/ , там более свежая версия а также x64, ВК внутри внешней обработки.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *