2016-04-13 3 views
0

私の会社は、私たちのソフトウェアをユーザーのハードウェアのさまざまな部分にロックすることによってライセンスを取得するデスクトップアプリケーション(C言語で書かれています)を販売しています。これは、WindowsマシンのIDのいくつかの部分が頻繁に変更されることを考えると、長年にわたって面倒です。私はnode.jsでそれを変更したいと思っていますが、何らかの方向性が必要です。ここに私がやろうとしていることの概要があります:デスクトップアプリケーションのリアルタイムライセンスのNode.js

  1. クライアントは自分のデスクトップでアプリケーションを起動します。
  2. デスクトップアプリケーションは、ユーザーに許可されていることを確認するためにデータ(おそらくライセンスコードのハッシュとユーザーの電子メールアドレスまたはその他のデータ)をサーバーに送信します。
  3. サーバーは、ライセンスがOKかどうかを示す別のハッシュで応答します。
  4. クライアント(デスクトップアプリケーション)と、ライセンスが別のマシンで使用しようとした場合にユーザーに警告するサーバー間でセッションが確立されます。

どのようにデスクトップアプリ(クライアント)とノードサーバーは、ユーザーが同じライセンスコードを有する第2のマシンから自分のアプリケーションを起動しようとした場合に中断することができ、セッションを確立することができますか?私はnpmや他の場所で幸運なことなく何か方向性を与えるために類似のものを探しました。マシンBで起動しようとすると、マシンAの警告を表示するアプリケーションが表示されています(一般に、マシンBがライセンスにアクセスできるようにログオフするかどうかをユーザーに尋ねる警告)。

答えて

0

サーバーからマシンAへの永続的な接続が必要です。メッセージをクライアントにリアルタイムでプッシュするための基本的な方法です。 Cクライアントの直接的な解決策は、ノードのnetライブラリによって処理されるTCP接続です。ノードもUDPです。 MQTTまたはWebSocketは他の「プッシュ」メッセージ・オプションです。

マシンBがサーバーにサインインしようとすると、サーバーはマシンAにログアウトを求めるメッセージを送信できます。マシンBの応答をマシンAのログアウトを待つか、マシンBが後でやり直すように指示することができます(マシンAがオフラインでメッセージを受け取らない場合に便利です)。

ノードサーバーは、ライセンスへのアクセス、使用されているライセンス、およびどのライセンスに関連付けられているソケット接続を維持する必要があります。

関連する問題