お問い合わせ

Node.js

サーバーサイド界隈で注目を集めているNode.js。概要や導入の際の注意点や、tipsを公開していきます。

第一回 Node.jsでどんなことができる?

Posted on:
2011.10. 7
Posted by:
前納梓
Tag : :
,
,

最近耳にすることが多くなった「Node.js」。
実際耳にしたことがある方は技術者の方が多いかと思います。

「聞いたことがあるけれどよくわからない」「どんなことができるのかざっくり知りたい」という方に向けて今回はマルチデバイスLab.のティザーサイトを実例にご紹介します。


Node.jsはなぜ注目されているの?

JavaScriptの一種で、サーバーが構築できる言語です。
「あれ?JavaScriptってHTMLとかブラウザ側の言語じゃないの?」と思った方もいらっしゃると思います。
Nodeは「サーバーサイド実装の言語」であり「JavaScript」でもあります。

もともとサーバーサイドJavaScriptは存在していました。
なぜ今、あらためて注目されているかというと、昨今のスマートフォンの急速な普及と非Flash対応デバイスなどの出現により、JavaScriptの需要が増し、それを書けるエンジニアが増え、サーバーにあまり詳しくないエンジニアも、「JavaScriptであれば・・・」と参入障壁が下がったことも、注目されている理由の一つかと思います。

今までのWebサーバで出来ていたことをただJavaScriptで書けるだけではApacheでいいのでは?ともいえますが、実は、Nodeには他にも大きな利点があります。


リアルタイムwebとは?

「リアルタイムweb」という言葉をご存知でしょうか。
ほぼタイムラグなしに情報の更新を反映するという概念です。
たとえばFacebookのメッセージやGoogleDocsなどをい浮かべていただければわかりやすいと思います。

上記の例と同じように、Nodeには「ページに新しい情報が来たよ!」と教えてくれる機能があり、Socket.IOというパッケージにて実装できます。

一昔前のチャットでは「誰か発言してないかな・・」とページをリロードして確認していました。
なぜならサーバーから「ページに新しい情報が来たよ!」とは教えてくれないからです。
しかし、Nodeを使用すればリアルタイムに発言を受け取ることができます。


具体的に何ができるの?

ご覧になった方もいらっしゃると思いますが、今回、マルチデバイスLab.では、Node.jsのパッケージであるSocket.IOを利用して「リアルタイムで他人と軌跡が共有できる」ティザーサイトを作成いたしました。

このURL、iPhone,Android,Firefox,Safari...それぞれのブラウザで同時に開いてみてください。なんと現在このページを見ている方のブラウザの種類や、マウスやタッチの軌跡がリアルタイムに見えます!

このように、ブラウザ上で他人とリアルタイムに事象を共有することが可能です。すごいですよね!今回のように表現の一旦として使用したり、絵かき掲示板やチャットのような共有ボードやゲームの開発にも使えます。

ゲームだけではなく、局地的にアクセスが集中する災害サイトにも有効です。
たとえばたくさんのひとが台風の情報を見たい時、同じページをたくさんの人が何度もリロードすると、ページはとても重くなります。ページから「新しい情報が来たよ!」と教えてくれれば、必要なアクセスだけで済みます。

この技術は表現やウェブアプリ開発などの幅を広げるの夢のある技術ではないでしょうか。

(備考)公式サイトも日本ユーザーグループもあります。
・公式サイト http://nodejs.org/
・日本ユーザーグループ http://nodejs.jp/


長文にお付き合いくださり、ありがとうございました。
次回は「ティザーサイトの実装裏側!」をご紹介いたします。


Node.jsコラム


マルチデバイスLab.の研究内容について、ご意見、ご質問などありましたら、
「マルチデバイスLab.」までお気軽にお問い合わせください。

※株式会社アイ・エム・ジェイのお問い合わせフォームに移動します。
サービスに関するお問い合わせ

このページのトップへ戻る