サーバを立てることができないためrocketchat等のOSSを使うことはできないが、共有ファイルサーバは存在するという環境。この共有のファイルサーバを使ってなんとかリアルタイムなコミュニケーションができないかと思った。以下のブログを参考に実装した。
実装
構成
ブラウザアプリにしたかった。手軽にWEBサーバを構築できるNode.js+Expressを採用。ブラウザから定期的にサーバに問い合わせを行いファイルの行数をカウントする。ブラウザ側で保持しているカウントより多い場合は更新がったとして画面に反映する。
画面デザイン
画面はbootstrapを使用。チャットアプリ用のテンプレートhtml/css/javascriptを以下のサイトから入手。
更新通知
更新があった時通知をしたかったので、お手軽なpush.jsを採用した。
使い方は簡単で、まず以下のようにライブラリを読み込む。
<script src="https://cdnjs.cloudflare.com/ajax/libs/push.js/0.0.11/push.min.js"></script>
その後、javascript内で以下のように実行する。
Push.create([通知内容]);
できたもの
こんな感じでそれっぽいものができた。
リポジトリはこちら。 github.com
あとがき
実務で使ってみているが問題なく動作している。ただ、ポーリング間隔が短すぎるとエラーが起きてしまうので調整しながら使っている。