今のところ、3回にわたりwebsocketの比較を書いてきましたが、
これからは、
- 処理フローの設計
- プログラミング
となります。
とその前に、一服。
個人的な見解としては、
node.jsよりjavaの方がwebsocketは組みやすいかなと思っています。
理由は、
- 過去資産が豊富なので、選択肢が多い
- 型制約があるので、全体的に堅牢になる
- eclipseなどのIDEが優秀
といったところでしょうか。
node.jsはjavascriptなので、
なんでもできてしまう分(たとえば、ユーザ定義オブジェクトになんでも突っ込めるとか)、
コードがわかりにくくなりがちです。(※規約で気を付けないとね)
また、IOが基本的に非同期で実行されるとかが、
やっぱりやりにくいなと感じてます。
ただ、java側はAPサーバを動かすコスト(メモリ消費)がやや高いので、
省エネなのはnode.jsかなとも思います。
ちなみに、javaでwebsocketをやる場合、
jetty8とかは独自実装になっており、
jetty9でJSR356に対応してます。
※jetty9の場合、jettyの独自パッケージの中で、JSR356に読み替えているようです。mavenのpomファイルも後で作成します。
JSR356に対応しておけば、tomcatに移植しても動くので、独自実装はもう使わないほうがよかです。
なお、あのplayframework2.3のwebsocketはjetty8でした。(playは機能面はすごいけど、ちょっと重いよね。。)
最終的には、どちらもクセはあります。
取り巻く環境、開発者の経験等を考慮して、
選択するとよいと思います。
(go言語なんかでもやっている人はいるのかな?goはこれから勉強します。)
コメントがあればどうぞ