Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Node.jsでサーバプログラマ デビューしよう

4,476 views

Published on

第5回 業界中心会議でのLT予定資料です。

https://itmedia.smartseminar.jp/public/application/add/922

  • Be the first to comment

Node.jsでサーバプログラマ デビューしよう

  1. 1. NODE.JSでサーバプログラマ デビューしよう 竹内佑介
  2. 2. 自己紹介 • 竹内 佑介 • 趣味でプログラムやってます • クリック&クリエイト、RPGツクール、HSP、
 DXライブラリとかやってました • 最近はnode.jsにはまってます
  3. 3. NODE.JSで今日からあなたも サーバサイドプログラマーになれる
  4. 4. NODE.JSとは • リアルタイムチャット、通信対戦ゲームとかの
 サーバプログラムが簡単に書けます • どれだけ簡単かというと・・・・・・、
  5. 5. サーバとクライアントのソースがこれだけ
  6. 6. 本当に簡単ですよ • node.jsをインストールして • npm install socket.io実行して • 前ページのapp.js、index.htmlつくって • node app.js ってやるだけで通信プログラムが書けます
 ※node appに失敗したらsudoつけてやってみて下さい
  7. 7. 動作確認してみましょう • ブラウザを立ち上げて、以下アドレスにアクセス • http://localhost
  8. 8. サーバからのメッセージどこ? • デバッグモードを立ち上げて下さい ここにメッセージが
  9. 9. コードの説明 WEBサーバ • これだけで、Webサーバが書けます var app = require(‘http’).createServer(handler) //サーバのテンプレート読み込み app.listen(80); //80番ポートでサーバを起動 function handler (req, res) { //リクエストがある場合に呼び出される関数を定義 fs.readFile(__dirname + '/index.html', //index.htmlをロード function (err, data) { //ファイルロードに失敗時エラー処理 if (err) { res.writeHead(500); return res.end('Error loading index.html'); } ! res.writeHead(200); //ヘッダにHTTP200(成功)を指定 res.end(data); //index.htmlをクライアントに送信 }); }
  10. 10. コードの説明 サーバ側  io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); //クライアントにメッセージ送信 socket.on('my other event', function (data) { //クライアントからメッセージ受信 console.log(data); //受信した時の処理 }); }); var socket = io.connect('http://localhost'); socket.on('news', function (data) { //サーバからメッセージ受信 console.log(data); //メッッセージ受信の処理 socket.emit('my other event', { my: 'data' }); //サーバへメッセージ送信 }); • 送信、受信も1行で書けます サーバ クライアント
  11. 11. 合計500行くらいで通信対戦ゲームも作れます http://janken-kaidouji85.herokuapp.com/
  12. 12. じゃんけんゲームのソース • ここにソースがあります
 https://github.com/kaidouji85/janken • 順次ブログでもソース解説していきたいと思います
 「毎日プログラム」
 http://blog.livedoor.jp/kaidouji85/
  13. 13. ご清聴ありがとうございました

×