【问题标题】:Node.js for real time licensing of Desktop applicationNode.js 用于桌面应用程序的实时许可
【发布时间】:2016-04-13 13:31:18
【问题描述】:

我的公司销售一个桌面应用程序(用 C 编写),我们通过将我们的软件锁定到用户硬件的各个部分来获得许可。多年来,这一直很麻烦,因为 Windows 机器的 id 的某些部分经常更改。我希望用 node.js 来改变它,但需要一些方向。这是我正在尝试做的事情的大纲:

  1. 客户在他的桌面上启动我的应用程序。
  2. 桌面应用程序向服务器发送数据(可能是许可证代码的哈希值,也可能是用户的电子邮件地址或其他数据)以确认用户已获得授权。
  3. 服务器以另一个哈希值进行响应,指示许可证是否正常。
  4. 在客户端(桌面应用程序)和服务器之间建立会话,如果试图在另一台计算机上使用许可证,则会向用户发出警告。

如果用户尝试从具有相同许可证代码的第二台计算机启动我的应用程序,桌面应用程序(客户端)和节点服务器如何建立可以中断的会话?我已经在 npm 或其他地方搜索了类似的东西来给我一些指导,但没有任何运气。如果您尝试使用机器 B 启动,我已经看到应用程序会在机器 A 上向您发出警告(通常是询问用户是否要注销以允许机器 B 访问许可证的警告)。

【问题讨论】:

    标签: node.js licensing


    【解决方案1】:

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

    当机器 B 尝试登录服务器时,服务器可以向机器 A 发送消息要求注销。您可以保留对机器 B 的响应以等待机器 A 注销,或者只是告诉机器 B 稍后再试(如果机器 A 离线并且永远不会收到消息,这可能会很好)。

    节点服务器必须保持对许可证的访问、正在使用的许可证以及与哪些许可证相关联的套接字连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 2015-11-03
      • 2015-10-06
      相关资源
      最近更新 更多