Socket.IO開発時に役立つツール4選とroom、namespaceライブラリの使い方:Socket.IOで始めるWebSocket超入門(終)(3/3 ページ)
本連載では、WebSocketを扱えるNode.jsのライブラリ「Socket.IO」の使い方について解説します。今回は、チャットアプリ開発を進めながら、「room」「namespace」ライブラリの使い方について説明し、最後に開発時に役立つツールを4つ紹介します。
Socket.IO開発時に役立つツール4選
前々回、前回記事を含め、ここまでの内容でSocket.IOを使った開発のイメージをつかめたでしょうか。ここで、少し内容は逸れますが、開発を進める際に役立つツールを簡単に紹介します。
Google Chrome Developer Tools:デバッグ、レイアウト調整、チューニングなど
ご存じの方も多いと思います。Web開発における必須ツールと言っても過言ではないでしょう。画面レイアウトの調整だけではなく、JavaScriptのデバッグやコンソールログを使用して処理の時間計測をすることが可能です。
forever:Node.jsプロセスのデーモン化
Node.jsプロセスをデーモン化するツールとしてforeverがあります。foreverは単にデーモン化するだけでなく、起動したNode.jsプロセスの死活監視を行い、停止した場合には自動的に再起動してくれます。
log4js:Node.jsログ出力
Node.jsログ出力ツールとしてlog4jsがあります。systemログ、applicationログなど、用途に応じた複数のロガーが定義できます。出力タイプは、ファイル・コンソール・日付単位のローテーションがあり、ログレベルは「FATAL」「ERROR」「WARN」「INFO」「DEBUG」「TRACE」の6レベル提供されています。
socket.io-redis:WebSocketセッションの共有
WebSocketは、異なるプロセス間でセッションを共有できません。そのため、本チャットアプリのサーバをスケールアウトしようとしても、Socket.IOはプロセスごとに動作するため、サーバAとサーバB間でチャットメッセージが共有されない問題が発生します。その問題を解決するために、socket.io-redisを使用します。別途Redisサーバを立てて、そこにスケールアウトしたいサーバを登録します。そうすることで、Redisサーバを経由して異なるプロセス間でもWebSocketセッションが共有され、上記のような問題を解決可能です。
最後に
3回にわたり、Socket.IOを使ったWebSocket入門記事を執筆してきました。本連載は、今回で最終回です。最後までお付き合いいただき、ありがとうございました。本連載がSocket.IOやWebSocket開発に興味を持った読者の皆さまに役立つことを願っています。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- WebSocketが一番速いアプリケーションサーバはどれだ?
双方向通信を実現するHTML5関連技術WebSocketを実装した3つのアプリケーションサーバの実装の違い・性能などを徹底検証する。 - Play2+nginx/Akka/WebSocketで高速双方向通信
Play framework 2.xを既存のWebサーバーと連携させる方法、並列処理や双方向通信を行う方法を紹介します。 - Socket.IOでセンサー&MongoDB〜AngularJSアプリ間の通信を行う
家電〜Webアプリ間の双方向通信をSocket.IOで行うアプリについて、サーバー側のArduino連携やMongoDBへのデータ保存などと、クライアント側のAngularJSに分けて動作を解説します。