2016-04-13 3 views
0

Моя компания продает настольное приложение (написанное на C), которое мы лицензируем, блокируя наше программное обеспечение для различных частей аппаратного обеспечения пользователей. Это было громоздким с годами, когда некоторые части идентификаторов оконных машин часто менялись. Я надеюсь изменить это с node.js, но нужно какое-то направление. Вот схема того, что я пытаюсь сделать:Node.js для лицензирования настольных компьютеров в режиме реального времени

  1. Клиент запускает мое приложение на своем рабочем столе.
  2. Настольное приложение отправляет данные (предположительно, хэш кода лицензии и, возможно, адрес электронной почты пользователей или другие данные) на сервер, чтобы подтвердить, что пользователь авторизован.
  3. Сервер отвечает другим хэшем, указывающим, что лицензия в порядке или нет.
  4. Сессия устанавливается между клиентом (настольным приложением) и сервером, который предупреждает пользователя, если лицензия попытается использовать на другой машине.

Как приложение Desktop (Клиент) и узел Сервер устанавливают сеанс, который может быть прерван, если пользователь пытается запустить мое приложение со второго компьютера с тем же кодом лицензии? Я искал что-то подобное на npm или в другом месте, чтобы дать мне какое-то направление без везения. Я видел приложения, которые будут предупреждать вас на Machine A, если вы попытаетесь запустить машину B (как правило, предупреждение, которое спрашивает пользователя, хочет ли он выйти из системы, чтобы машина B получила доступ к лицензии).

ответ

0

Вам понадобится постоянное подключение с вашего сервера к компьютеру A. В основном, способ передачи сообщений в реальном времени вашим клиентам. Простое решение для клиента C может быть TCP-соединением, которое обрабатывается библиотекой Node net. Узел также имеет UDP. MQTT или WebSockets - это другие параметры сообщения «push».

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

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