makotan _at_ gmail dot com

nowcast

概要

ファイルを更新時にブラウザをリロードするツール
環境に強く依存してないのでリモートのブラウザでもOK
Java7で出来てるのでWindowsでも楽々動作
ただしIE除く

セットアップ

git clone git://github.com/makotan/nowcast.git
これで持ってこなくても
必要なファイルは
https://raw.github.com/makotan/nowcast/master/conf/filecheckproxy.json
https://raw.github.com/makotan/nowcast/master/src/main/java/FileCheckProxy.java
この二つを同じディレクトリに置く
vert.xをダウンロードする
http://vertx.io/
ここのダウンロードページからどうぞ
ちなみに1.2.1は動作確認済みで、知ってる範囲では1.3.1でも動くはず。動かなかったら1.2.1使って〜


filecheckproxy.jsonの中身を適当に書き換える


portはブラウザからアクセスするポートの事
checkdirはチェックしたいディレクトリをいくつでも。サブディレクトリ配下も自動チェックしてるけど、ディレクトリが増えたり減ったりするのにはまじめに対応してないのでそこだけ注意
hostはサーバとして動いてるhost、他のコンピュータから見たいときはIPなどに書き換える
remotehostは実際に動いているサーバ
remoteportは実際に動いているサーバのポート

動かす

java -version
これでjavaが動いていることを確認する


/vert.x/1.x.x/bin/vertx run FileCheckProxy.java -conf filecheckproxy.json
こんな感じでコマンドを実行する
ブラウザで
http://locahost:3000
みたいに開く


checkdirの配下のファイルを書き換える
勝手にブラウザがリロードする(^o^)

動作の仕組み

FileCheckProxyはブラウザからのリクエストをそのままremotehostに送る
htmlが帰ってきたときだけその下にwebsocketのポートを開くjavascriptのちっちゃいコードを埋め込む
ファイルの変更を検出したらwebsocket経由でリロードを指示する
こんな感じ


websocket使ってみたかっただけだよ!

こんなときは?

FileCheckProxyを止めて再度動かしてブラウザをリロード

  • 上手く動かないとき

作者に連絡しても他のことで手一杯な可能性があるので、変更してpullリクエストをお願いします

  • Macでリロードが遅延する

MacのJava7だけ変更検出がポーリングなのが原因です。
これ、ほんとに何とかならないのかなぁ・・・
注)WindowsLinuxもリアルタイムに変更検出してブラウザリロードします