node.jsでサーバプログラマ デビューしよう
DESCRIPTION
第5回 業界中心会議でのLT予定資料です。 https://itmedia.smartseminar.jp/public/application/add/922TRANSCRIPT
NODE.JSでサーバプログラマ デビューしよう
竹内佑介
自己紹介
• 竹内 佑介
• 趣味でプログラムやってます
• クリック&クリエイト、RPGツクール、HSP、
DXライブラリとかやってました
• 最近はnode.jsにはまってます
NODE.JSで今日からあなたも サーバサイドプログラマーになれる
NODE.JSとは
• リアルタイムチャット、通信対戦ゲームとかの サーバプログラムが簡単に書けます
• どれだけ簡単かというと・・・・・・、
サーバとクライアントのソースがこれだけ
本当に簡単ですよ
• node.jsをインストールして
• npm install socket.io実行して
• 前ページのapp.js、index.htmlつくって
• node app.js ってやるだけで通信プログラムが書けます
※node appに失敗したらsudoつけてやってみて下さい
サーバからのメッセージどこ?
• デバッグモードを立ち上げて下さい
ここにメッセージが
コードの説明 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をクライアントに送信
}); }
コードの説明 サーバ側
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行で書けますサーバ
クライアント
合計500行くらいで通信対戦ゲームも作れます
http://janken-kaidouji85.herokuapp.com/
じゃんけんゲームのソース
• ここにソースがあります
https://github.com/kaidouji85/janken
• 順次ブログでもソース解説していきたいと思います
「毎日プログラム」
http://blog.livedoor.jp/kaidouji85/
ご清聴ありがとうございました