2017-05-22 15 views
0

私は、TCPソケットサーバ(バーコードがスキャンされるたびにデータをプッシュ)として機能するTCP/IP対応のバーコードスキャナを持っています。TCPソケットデータをTomcatサーブレット/ HTTPアプリケーションにフィード

また、Tomcat Java Servlet(Windowsサーバー上で動作するTomcat 7.0.27)によって提供されるHTTPS Webアプリケーションもあります。

& HTTPS Webアプリケーション内のTCPソケットバーコードスキャナからのプロセスデータを表示できる必要があります。私はブラウザから直接TCPソケットへの接続が禁止されていることを知っています。私はまた、WebsockifyまたはSocket.ioのようなサードパーティの "プラグイン"を避けることを望んでいます。

私はこのように感じるは、TomcatのJavaサーブレットを経由してなんとかする必要がありますが、どこから始めれば私はかなりよく分からない:

  • サーブレットが実行されると、トリガスレッドからのソケットのデータを「リッスン」というバーコードスキャン。
  • バーコードデータを受信すると、ブラウザに「プッシュ」します。

正しい方向のヘルプやナッジがあれば幸いです。ありがとう!

+0

もっと具体的にする必要があります。これは単にクライアント/サーバのようなものです。 –

+0

この時点では、スキャナをクライアントのマシン上で実行するか、サーバで実行するかは明確ではありません。それがクライアント上にある場合、クライアントはデータを受け入れてどこかに送信できるバーコードスキャナドライバを使用していないのはなぜですか? –

+0

バーコードスキャナ自体はTCP/IPソケットサーバであり、有効なバーコードがスキャンされたときにTCPソケットを介してデータを「プッシュ」します。バーコードデータをHTTP Webアプリケーションにストリームするには何らかの方法が必要です。 Tomcatの外で、バーコードスキャナからTCPソケットデータを読み込み、キューに入れてWebSocketに変換する必要があるようです。 –

答えて

0

Tomcatは、生のソケットをリッスンするのに間違ったツールですが、あなたが想像していた方法でプッシュしたり引っ張ったりするツールではありません。

バーコードデータを受信するソケットサーバーを作成する必要があります。それは過度の可能性がありますが、MinaやNettyを使用すると、マルチスレッドバーコードサーバーをすばやく作成できます。

バーコードサーバーが実行されたら、Rabbit MQやReddisのような適切なキューを使用してデータをキューに書き込ませます。

これで、Tomcatはユーザーの要求に対応するために使用できます。キューからの読み取りを読み取り、クライアントにデータを返すことができます。新しいデータがキューに到着したら、Websocketを使用して、結果をすぐにクライアントに表示します。

関連する問題