Permalink
Browse files

サーバサイドのプログラムにコメントを追加

  • Loading branch information...
1 parent 9517818 commit 1aaf52be9fc47fbfa9a472a333e7f30846fc82cc @nsyee nsyee committed Nov 12, 2012
View
8 app.js
@@ -1,3 +1,11 @@
+/******************************************************************
+ * syaberi-houseアプリケーションの起点となる起動スクリプト。
+ * 開発環境やCPUのコア数が1個の場合はapp.jsを実行する。
+ * ※複数のCPUのコアを活用する場合はapp.jsを直接使用せずcluster.jsを実行する。
+ *
+ * usage: $ node app.js
+ ******************************************************************/
+
var fs = require('fs');
var path = require('path'); // dirname, basename とかのutil
var config = require('config'); // 設定ファイル
View
@@ -1,3 +1,10 @@
+/******************************************************************
+ * syaberi-houseアプリケーションを複数プロセス立ち上げる起動スクリプト。
+ * 複数のCPUのコアを活用する場合はapp.jsを直接使用せずこちらを実行する。
+ *
+ * usage: $ node cluster.js
+ ******************************************************************/
+
var cluster = require('cluster');
var config = require('config');
View
@@ -1,3 +0,0 @@
-module.exports =
- common:
- port: 3000
View
@@ -1,7 +1,16 @@
+/******************************************************************
+ * JavaScriptファイルを結合・圧縮するツール"Grunt"の設定ファイル。
+ * production環境では個別のファイルを読み込むのではなく、
+ * Gruntを使って結合・圧縮したファイルが読み込まれる。
+ * (common.min.js, top.min.jsなど)
+ *
+ * usage: $ ./node_modules/grunt/bin/grunt
+ ******************************************************************/
+
module.exports = function(grunt) {
grunt.initConfig({
- //jsファイルを画面ごとに結合
+ //jsファイルを結合する
concat: {
common: {
src: [
@@ -83,6 +92,7 @@ module.exports = function(grunt) {
dest: 'public/js/dist/deleteChatroom.js'
}
},
+ //jsファイルを縮小化する
min: {
common: {
src: 'public/js/dist/common.js',
View
@@ -1,6 +1,10 @@
+/*******************************
+ * アプリケーション内の定数定義
+ ******************************/
+
var CONST = {};
-//ハウスのステータス
+//部屋のステータス
CONST.STATUS_INVITE = 0; //申し込み受付中
CONST.STATUS_OPEN_AND_INVITE = 1; //申し込みうけつつチャット開始中
CONST.STATUS_OPEN = 2; //募集終了してチャット中
@@ -9,8 +13,10 @@ CONST.STATUS_OPEN = 2; //募集終了してチャット中
CONST.STATUS_ENTRY = 0; //申込発言
CONST.STATUS_CHAT = 1; //チャット発言
-//トップページのハウス表示件数
+//トップページの部屋の表示件数
CONST.TOP_HOUSE_NUM = 10;
+//マイページの部屋の表示件数
CONST.MYPAGE_HOUSE_NUM = 5;
+
exports.CONST = CONST;
View
@@ -1,7 +1,12 @@
+/*********************************************************
+ * チャットに関連するリクエストを扱うコントローラー
+ *********************************************************/
+
var app = require('../../app');
var Chat = require('../models/chat').Chat;
var check = require('validator').check;
+//チャット新規作成処理
exports.create = function(req, res, next) {
var logger = app.set('logger');
var userId = req.user.id;
@@ -33,6 +38,8 @@ exports.create = function(req, res, next) {
});
};
+
+//チャット削除処理
exports.destroy = function(req, res, next) {
var logger = app.set('logger');
var chatId = req.param('id');
@@ -1,3 +1,7 @@
+/*********************************************************
+ * 部屋に関連するリクエストを扱うコントローラー
+ *********************************************************/
+
var app = require('../../app');
var config = require('config');
var Chat = require('../models/chat').Chat;
@@ -10,6 +14,7 @@ var redis = require('socket.io/node_modules/redis');
var redisClient = redis.createClient(config.redis.port, config.redis.host);
+//部屋一覧を新着順に取得する処理 (Ajax API用)
exports.index = function(req, res, next) {
var logger = app.set('logger');
var profileId = req.query.profileId;
@@ -33,7 +38,7 @@ exports.index = function(req, res, next) {
}
var offset = (page - 1) * num;
- //作成したハウス一覧
+ //作成した部屋一覧を取得
if (mode === 'owner') {
//validation
try {
@@ -49,23 +54,23 @@ exports.index = function(req, res, next) {
limit: num + 1
}, _indexNext);
}
- //申請中のハウス一覧
+ //申請中の部屋一覧を取得(申請機能が無くなった為現在は未使用)
else if (mode === 'entry') {
Chatroom.findEntryRoom({
userId: req.user.id,
offset: offset,
limit: num + 1
}, _indexNext);
}
- //参加中のハウス一覧
+ //参加中の部屋一覧を取得
else if (mode === 'join') {
Chatroom.findJoinRoom({
userId: req.user.id,
offset: offset,
limit: num + 1
}, _indexNext);
}
- //全チャットルーム一覧
+ //全部屋の一覧を取得
else {
Chatroom.findWithLatestChat({
offset: offset,
@@ -96,8 +101,7 @@ exports.index = function(req, res, next) {
};
-
-
+//部屋の新規作成画面を表示
exports.new = function(req, res, next) {
var logger = app.set('logger');
Category.find(function(err, categories) {
@@ -108,6 +112,7 @@ exports.new = function(req, res, next) {
});
};
+//部屋の新規作成実行処理
exports.create = function(req, res, next) {
var logger = app.set('logger');
var categoryId = req.param('categoryId');
@@ -155,7 +160,7 @@ exports.create = function(req, res, next) {
});
};
-
+//部屋詳細画面を表示
exports.show = function(req, res, next) {
var logger = app.set('logger');
var chatroomId = req.param('id');
@@ -255,6 +260,8 @@ exports.show = function(req, res, next) {
};
+
+//部屋の削除確認画面を表示
exports.confirm_delete = function(req, res, next) {
var logger = app.set('logger');
var chatroomId = req.param('id');
@@ -286,6 +293,7 @@ exports.confirm_delete = function(req, res, next) {
};
+//部屋の削除実行処理
exports.delete = function(req, res, next) {
var logger = app.set('logger');
var chatroomId = req.param('id');
@@ -332,7 +340,7 @@ exports.delete = function(req, res, next) {
};
-
+//部屋への招待処理(申請機能が無くなった為現在は未使用)
exports.invite = function(req, res, next) {
var logger = app.set('logger');
var chatroomId = req.params.id;
View
@@ -1,3 +1,8 @@
+/*********************************************************
+ * マイページに関連するリクエストを扱うコントローラー
+ *********************************************************/
+
+
var app = require('../../app');
var Chatroom = require('../models/chatroom').Chatroom;
var User = require('../models/user').User;
@@ -6,6 +11,8 @@ var utils = require('../utils');
var Mail = require('../utils/mail').Mail;
var check = require('validator').check;
+
+//マイページ画面を表示
exports.show = function(req, res, next) {
var logger = app.set('logger');
var profileId = req.param('id') || req.user.id;
@@ -35,16 +42,18 @@ exports.show = function(req, res, next) {
isMine: isMine
});
});
-
};
+
+//退会確認画面を表示
exports.confirmDeactivation = function(req, res, next) {
var logger = app.set('logger');
res.render('deactivation', {
});
};
+//退会実行処理
exports.deactivation = function(req, res, next) {
var logger = app.set('logger');
var _csrf = req.session._csrf;
@@ -1,3 +1,9 @@
+/*********************************************************
+ * Socket.ioを用いたリアルタイム処理のリクエスト/イベントを
+ * 扱うコントローラー
+ *********************************************************/
+
+
var app = require('../../app');
var config = require('config');
var Chatroom = require('../models/chatroom').Chatroom;
@@ -9,12 +15,13 @@ var cookieLib = require('cookie'); // cookie 操作npmモジュール
var redis = require('socket.io/node_modules/redis');
var redisClient = redis.createClient(config.redis.port, config.redis.host);
-var ownerClients = {}; //ハウスオーナーのSocket.ioのセッションを保持
+var ownerClients = {}; //部屋オーナーのSocket.ioのセッションを保持
+//部屋に訪れた時に呼び出される処理
exports.onConnection = function(socket) {
var logger = app.set('logger');
- var sessionStore = app.set('sessionStore');
+ var sessionStore = app.set('sessionStore'); //Redisのセッションストア
var chatroomId = socket.handshake.query.id;
var isUrlOpen = socket.handshake.query.urlopen;
var user;
@@ -30,7 +37,13 @@ exports.onConnection = function(socket) {
return;
}
- //部屋に接続してきたユーザーのセッションIDを部屋ごとに保持
+ //部屋に接続してきたユーザーのセッションIDを部屋ごとにRedisで管理
+ //部屋IDをキーにハッシュ型で保持する
+ //{
+ // "ユーザー1のセッションID": true,
+ // "ユーザー2のセッションID": true,
+ // "ユーザー3のセッションID": true
+ //}
//## Socket.ioのnamespaceの独自実装
redisClient.hset("chatroomClients:"+chatroomId, socket.id, "true");
@@ -62,6 +75,7 @@ exports.onConnection = function(socket) {
// // }
// });
+ //チャットメッセージを追加/削除した時に呼び出される処理
socket.on('message', function(data) {
logger.info('##socket.io: message');
@@ -115,6 +129,8 @@ exports.onConnection = function(socket) {
});
};
+
+//参加申請コメントを書き込む処理(申請機能が無くなった為現在は未使用)
function createEntry(socket, data) {
var io = app.set('io');
@@ -137,8 +153,7 @@ function createEntry(socket, data) {
//オーナーの発言はブロードキャスト
if (user && (user.id === data.ownerId)) {
- //socket.emit('message', data);
- //socket.broadcast.emit('message', data);
+ //Redisで管理している、部屋に接続中のユーザーにメッセージ送信
redisClient.hkeys("chatroomClients:"+data.chatroomId, function(err, clients) {
clients.forEach(function(sid) {
process.nextTick(function() {
@@ -159,6 +174,7 @@ function createEntry(socket, data) {
});
}
+//通常のチャットコメントを書き込む処理
function createChat(socket, data) {
var io = app.set('io');
@@ -175,8 +191,7 @@ function createChat(socket, data) {
data.time = results[0].time;
data.message = utils.nl2br(utils.escHtml(data.message));
- //socket.emit('message', data);
- //socket.broadcast.emit('message', data);
+ //Redisで管理している、部屋に接続中のユーザーにメッセージ送信
redisClient.hkeys("chatroomClients:"+data.chatroomId, function(err, clients) {
clients.forEach(function(sid) {
process.nextTick(function() {
@@ -187,6 +202,7 @@ function createChat(socket, data) {
});
}
+//チャットコメントを削除する処理
function destroy(socket, data) {
var io = app.set('io');
var chatId = data.chatId;
@@ -209,8 +225,7 @@ function destroy(socket, data) {
if (err2) { logger.error(err2); return; }
data.chatId = chatId;
- //socket.emit('message', data);
- //socket.broadcast.emit('message', data);
+ //Redisで管理している、部屋に接続中のユーザーにメッセージ送信
redisClient.hkeys("chatroomClients:"+data.chatroomId, function(err, clients) {
clients.forEach(function(sid) {
process.nextTick(function() {
@@ -224,11 +239,13 @@ function destroy(socket, data) {
}
+//部屋から離れた時に呼び出される処理
exports.onDisconnect = function(socket) {
var logger = app.set('logger');
var chatroomId = socket.handshake.query.id;
logger.info('##socket.io: disconnect');
+ //部屋から離れるユーザーのセッションIDを部屋から削除
redisClient.hdel("chatroomClients:"+chatroomId, socket.id);
};
View
@@ -1,7 +1,14 @@
+/*********************************************************
+ * トップページに関連するリクエストを扱うコントローラー
+ *********************************************************/
+
+
var app = require('../../app');
var Chatroom = require('../models/chatroom').Chatroom;
var CONST = require('../const').CONST;
+
+//トップページ画面を表示
exports.index = function(req, res, next) {
var logger = app.set('logger');
@@ -1,3 +1,9 @@
+/*********************************************************
+ * ファイルアップロードに関連するリクエストを扱うコントローラー
+ * (実装途中のため現在は未使用)
+ *********************************************************/
+
+
var app = require('../../app');
var formidable = require('formidable');
var fs = require('fs');
Oops, something went wrong.

0 comments on commit 1aaf52b

Please sign in to comment.