Node.js + Expressでファイルサーバ上のファイルを介してチャットするツールを作った

サーバを立てることができないためrocketchat等のOSSを使うことはできないが、共有ファイルサーバは存在するという環境。この共有のファイルサーバを使ってなんとかリアルタイムなコミュニケーションができないかと思った。以下のブログを参考に実装した。

sandambara.com

実装

構成

ブラウザアプリにしたかった。手軽にWEBサーバを構築できるNode.js+Expressを採用。ブラウザから定期的にサーバに問い合わせを行いファイルの行数をカウントする。ブラウザ側で保持しているカウントより多い場合は更新がったとして画面に反映する。

画面デザイン

画面はbootstrapを使用。チャットアプリ用のテンプレートhtml/css/javascriptを以下のサイトから入手。

www.bootdey.com

更新通知

更新があった時通知をしたかったので、お手軽なpush.jsを採用した。

pushjs.org

使い方は簡単で、まず以下のようにライブラリを読み込む。

    <script src="https://cdnjs.cloudflare.com/ajax/libs/push.js/0.0.11/push.min.js"></script>

その後、javascript内で以下のように実行する。

Push.create([通知内容]);

できたもの

こんな感じでそれっぽいものができた。

チャットツールイメージ

リポジトリはこちら。 github.com

あとがき

実務で使ってみているが問題なく動作している。ただ、ポーリング間隔が短すぎるとエラーが起きてしまうので調整しながら使っている。