2016-04-13 17 views
0

我的公司销售桌面应用程序(用C语言编写),我们通过将我们的软件锁定到用户硬件的各个部分来获得许可。这多年来一直很麻烦,因为Windows机器的id的某些部分经常改变。我希望用node.js改变它,但需要一些方向。这里是我想要做的事情的概要:用于Desktop应用程序实时授权的Node.js

  1. 客户端在他的桌面上启动我的应用程序。
  2. 桌面应用程序向服务器发送数据(可能是许可证代码的散列,也可能是用户的电子邮件地址或其他数据)以确认用户是否有权访问。
  3. 服务器用另一个散列表示许可证正确或不正常。
  4. 会话在客户端(桌面应用程序)和服务器之间建立,如果许可证尝试在另一台计算机上使用,则警告用户。

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

回答

0

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

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

节点服务器必须保持对许可证的访问权限,正在使用哪些许可证以及哪些套接字连接与哪些许可证绑定。