IE2017

Что нам стоит 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, заполнять параметры подключения к серверной части.

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

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

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

См. также

В этой теме еще нет сообщений.
Оставьте свое сообщение