2012年12月2日日曜日

僕の彼女を紹介するよ!(おまけでNode.jsについて)

みなさんもうすぐクリスマスですね!
だんだんと街中のみんなが浮き足立ってきている気がします。

そこで!僕も今まで過ごした元カノと、今年クリスマスを共に過ごす彼女を写真付きで紹介しようと思います。

まずは元カノ。

僕の初めての彼女でした///
顔色が真っ青で体調が悪そうですが、コイツと一緒に29000km走りました。四国一周や栃木、静岡などいろんな思い出を作ってきました。

次にクリスマスを一緒に過ごす今の彼女です!
色黒ですが、前の彼女と違って上品な趣があって大人な感じです。スリーサイズは排気量1140cc、4気筒、レッドゾーン8500からです。まだ岐阜県に行っただけであまりお互いを理解しきれていないですがこれから上手くやっていこうと思います。





ここまで読んで「コイツ、頭やばい」と思った人、帰っていいです。




じゃあやりたいことも終わったんでおまけに入ります。

「Node.jsでめっちゃ簡単に動画をストリーミング配信しよう」(サーバー準備編)

まずは環境を整えましょう。(注 mac or linuxでしか確認していません windowsはわからへん)

nodejsは最近登場したばかりでバージョンの更新がものすごく早いです。
なので、様々なバージョンのnodejsを自動でダウンロードしてくれて、バージョンの切り替えも簡単にしてくれる「nvm」(nodejs version manager ?)をインストールしましょう。
詳しくはwikiの高木の個人ページを見ましょう。
高木の個人ページ

インストールしたら


↑(12/2時点でのnode.jsの安定版)

でnode.jsをインストールしましょう。

node.jsはmoduleをインストールすることで色々な機能が使えるようになります。(ライブラリみたいなもん)
moduleのインストールはnpmを使います。npmはnvmをインストールすると使えるようになってます。

試しにnpmを使ってwebsocketが使えるようになるsocket.ioというmoduleをインストールしましょう。何か開発用のディレクトリを一個作ってその中で下のコマンドを実行してください。

npm install socket.io


これでおk。

じゃあ同じディレクトリの中にファイルを作ってアプリの開発を行いましょう。
nodejsではまずサーバプログラムを用意するところから始まります。
ディレクトリの中にserver.jsを作ってください。
僕はtestディレクトリの中にserver.jsを作りました。


コードは下のように書きましょう。


1行目はhttpサーバを作るための「http」モジュールを読み込んでいます。includeやimportのようなものです。「http」モジュールはnpmを使ってインストールしなくても元々備わっています。

3から6行目がサーバの本体です。3行目でhttpモジュールのcreateServerという関数を呼び出して名前の通りサーバを作っています。

中の function(req, res){}はクライアントからこのサーバにリクエストがあるたびに実行されます。重要です。

ここでは接続してきたクライアントに「暇人乙wwwwwwwww」を返すことにします。
クライアントに何かを送り返すには4行目のようにresを使います。(分かると思うけどresponseのresね)
そのresをつかって

res.write('暇人乙wwwwwwwww');

とすると文字を送れます。ということはここを変更すれば動画も送れちゃう・・・?

それは置いといて5行目です。
クライアントへの送信を明示的に終了させる必要があります。これを忘れるとクライアントへの送信が完了されてないものとみなされて、アクセスした時にずっとロード中になって画面が表示されません。

8行目はどのポートで接続を待ち受けるかを指定します。ここでは30000を指定します。
(30000で何かサービスが動いてる場合は注意)

じゃあ実行してみましょう
上のコマンドで実行したらブラウザで

localhost:30000

にアクセスしてみましょう。

表示されましたか?

こんな感じで文字ではなくhtmlなんかを返すと普通にサイトが表示されます。
それでは次回はいよいよ本命の動画のストリーミングです。
おたのしみに!

ちなみにhtmlの送り方とか、ホスト名の指定の仕方とか気になる人は

node.jsのapiリファレンス

を見ましょう。

2 件のコメント:

  1. Install Samsung Printer Drivers and remain updated with minimum hassle with our expert help. Get instant support for Samsung Printer Drivers For windows 10.

    返信削除
  2. Students find Nursing Critical Care Essay Services as being of great assistance since they are able to seek our nursing research paper writing services and nursing essay writing help services on time.

    返信削除