2016-04-13 23 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脫機並且永遠不會收到消息,這可能會更好)。

節點服務器必須保持對許可證的訪問權限,正在使用哪些許可證以及哪些套接字連接與哪些許可證綁定。