注文を配送するための Web ベースのピッキング/梱包ソリューションがあります (asp.net/c#)。注文はブラウザで梱包済みとしてマークされ、すぐにラベル情報がデータベースに追加され、次の部品の準備が整います...
ラベルの印刷は Windows アプリケーション (C# で記述) を介して行われますが、ブラウザーにラベルを自動的に印刷させる方法が見つからなかったため (つまり、ユーザーが印刷/OK などをクリックする必要はありません)、この方法で行われました。 )
問題:
Windows アプリケーションは 10 秒ごとに (変更される可能性があります) ポーリングして、そのピッカー/パッカーに新しいラベルがあるかどうかを確認します。ここで、ブラウザーがラベル アプリケーションと通信できるようになれば、ピッカー/パッカーが [出荷準備完了] をクリックしただけでラベル データが作成されるため、ポーリングは不要になります。
ポーリング プロセスによって取り出されるデータは膨大ではありませんが、ピッカー/パッカー ステーションを追加すると、ポーリング プロセスが Web サーバー/データベースに影響を与えるのではないかと懸念しています (すべてのステーションがポーリング)。また、ピッカー/パッカーはラベルを待つのを待ちたくないので、ポーリング時間を延長することはできません (どちらかといえば、できるだけ早くしたいのですが)
ソリューション?
したがって、理想的には、ブラウザとアプリケーションの間で通信する方法が必要です (可能であれば)。または、ポーリングの必要性をなくす方法。おそらく、新しいラベルが追加されたときにサーバーがアプリケーションにメッセージを送信できるようにする、Comet に似たものです。
理想的には、特定のブラウザーを必要としないソリューションです。しかし、これはあまりにも多くを求めている可能性があります。
長期的な解決策は、Web ベースのピッキング/パッキング ソリューションをラベル アプリケーションに移行することですが、それには多くの作業が必要です。
それが明確で、あまりにも冗長でないことを願っています。ここに他の詳細を追加できるかどうか教えてください。前もって感謝します。
編集
アイデアとして websocket を検討しています。どんなアドバイスでも大歓迎です!
アップデート
すべてのコメントに感謝します。私は今、問題を解決する方法についていくつかのアイデアを持っています:
- ウェブソケット。システムに簡単にアクセスできない (地理的な距離) ため、ファイアウォールの問題で問題が発生する可能性があります
- アプリケーションからブラウザーの Cookie を読み取ります。可能な解決策http://www.codeproject.com/Articles/330142/Cookie-Quest-A-Quest-to-Read-Cookies-from-Four-Pop。これは、ウェアハウスで使用されているすべてのブラウザーをカバーします。ローカル Cookie の値をポーリングして、新しいラベルが作成されているかどうかを確認し、それらをダウンロードできます。したがって、データベース サーバーでのポーリングはありません。
- ActiveX コントロール。IE に限定されており、これを各 PC にインストールすると、セキュリティやセットアップの問題が発生する可能性があります。
- コードはそのままにしておきます。データベース サーバーの負荷が大きすぎるか、または適切かを判断します。