Node.js用于桌面应用程序的实时许可

时间:2016-04-13 13:31:19

标签: node.js licensing

我的公司销售桌面应用程序(用C语言编写),我们通过将软件锁定到用户硬件的各个部分来获得许可。多年来,由于Windows机器的某些部分经常发生变化,因此这很麻烦。我希望用node.js改变它,但需要一些方向。以下是我想要做的概述:

  1. 客户端在桌面上启动我的应用程序。
  2. 桌面应用程序将数据(可能是许可证代码的哈希值,可能是用户的电子邮件地址或其他数据)发送到服务器,以确认用户已获得授权。
  3. 服务器以另一个哈希响应,表明许可证是否正常。
  4. 在客户端(桌面应用程序)和服务器之间建立会话,如果尝试在另一台计算机上使用该许可证,则会警告用户。
  5. 如果用户尝试从具有相同许可证代码的第二台计算机启动我的应用程序,桌面应用程序(客户端)和节点服务器如何建立可以中断的会话?我在npm或其他地方搜索过类似的东西,给我一些方向,没有任何运气。我已经看到过如果您尝试启动机器B而在机器A上发出警告的应用程序(通常是一个警告,询问用户是否要注销以允许机器B获得对许可证的访问权限。)

1 个答案:

答案 0 :(得分:0)

您需要从服务器到机器A的持久连接。基本上是将消息实时推送给客户的某种方式。 C客户端的直接解决方案可能是TCP连接,由Node的net库处理。节点也有UDP。 MQTT或WebSockets是其他" push"消息选项也是。

当机器B尝试登录服务器时,服务器可以向机器A发送消息,要求注销。您可以保留对机器B的响应以等待机器A注销,或者告诉机器B稍后再试(如果机器A处于脱机状态并且没有获得该消息,这可能会很好。)

节点服务器必须维护对许可证的访问权限,正在使用的许可证以及哪些套接字连接与哪些许可证相关联。