gifts2017

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

Опубликовал Александр (PloAl) в раздел Обмен - Обмен с другими системами

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

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

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

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

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

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

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

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

Название как-то само напросилось PushOk, но ибо сан.... “Пушок”.

Добавленный логотип, отчасти, символизирует как раз это название.

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

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

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 шифрование несложно, несколько строчек кода и, возможно, еще один модуль. Добавлю позднее.

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

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

Наименование Файл Версия Размер
PushServer.zip 1
.zip 2,01Mb
08.09.16
1
.zip 1.0 2,01Mb Скачать

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа