Más contenido relacionado La actualidad más candente (20) Similar a Node.jsでブラウザメッセンジャー (20) Más de Yahoo!デベロッパーネットワーク (20) Node.jsでブラウザメッセンジャー3. 講演者紹介
石澤 基
R&D統括本部 プラットフォーム開発本部 広告開発2部 開発4
濱邉 将太
R&D統括本部 フロントエンド開発1本部 開発5部 開発2
栗山 太希
R&D統括本部 プラットフォーム開発本部 広告開発1部 開発4
3
4. HackDayのご紹介
• NodeKOのような社内開発イベント
• 8時間×3日+発表会
• 2分間LTでの社内に向けて発表
4
5. MYM
• とにかくNode.jsが使いたい!
• HackDay期間中にNode.jsで開発
• HTML5 + Node.js + MongoDB
• ブラウザ上で動作するメッセンジャーツール
5
7. コンセプト
• コンセプトは実験場
– HTML5
• WebSocket、 Web Worker、 Web Notification、
File API、 Drag and Drop、 History API、…
– ブラウザに先行実装された機能
• とにかく気になる機能を実験的に
使ってみる
7
9. クライアントサイド検索
Node Server 検索開始時
server のみ通信
client
Web
Worker
ユーザ検索 ルーム検索 ログ検索
UI
9
10. 脱ライブラリのススメ
• JavaScriptエンジンの高速化
• ネイティブメソッドの充実
• CSS3によるアニメーション
• ブラウザ仕様の統一
• JavaScriptライブラリの利用は昔
ほど必須ではなくなっている
10
22. $ cat conf.json
{
"maxConnections" : 1000,
"port" : 9999,
"messageBufferSize" : 8192,
...
}
22
23. try {
var data = fs.readFileSync('conf.json');
config = JSON.parse(data);
}
catch (err) {
util.log(err.stack);
// exit
}
// 1000
console.log(config.maxConnections);
23
24. Node.js v0.5.2
try {
config = require('conf.json');
}
catch (err) {
util.log(err.stack);
// exit
}
24
26. • util.log(err.stack);
// 28 Oct 14:54:56 - ReferenceError: test is not defined
// at [object Context]:1:7
// at Interface.<anonymous> (repl.js:171:22)
// at ReadStream.onData (tty_posix.js:70:12)
// ...
• util.log('message');
// 28 Oct 15:33:36 - message
26
30. function onMessage (data) {
var message = JSON.parse(data);
collection.save(message, function(err, doc) {
// if (err) ...
server.broadcast(JSON.stringify(doc));
});
}
30
32. {
"type" : "message",
"date" : 1319792185,
"_id" : "343ea44e42f0ef0001000000",
....
}
32
62. まとめ
• 中規模アプリ開発には最適
– オールJavaScriptの生産性
– MongoDBの柔軟性
• Socket.IOはオススメ
• 脱jQueryでJS力アップ!Node力アップ!
62