OSDN Git Service

部屋の設定を接続時に送るようにした
authorkonekoneko <jbh03215@gmail.com>
Wed, 19 Sep 2012 15:32:58 +0000 (00:32 +0900)
committerkonekoneko <jbh03215@gmail.com>
Wed, 19 Sep 2012 15:32:58 +0000 (00:32 +0900)
chatServer.js
public/scripts/chatclient.js

index 5f37b4d..40012bf 100644 (file)
@@ -248,6 +248,7 @@ for(var i = 0; i < $max_room_number; i++)
        .authorization(ParseAuthorization)\r
        .on("connection", function (socket) {\r
                console.log("connected from %s",GetClientIPAdress(socket));\r
+               socket.json.emit("send roomlist",$rooms.GetKeys());\r
                socket.on("get pastLogList", function (msg) {\r
                        ParseGetPastLogList(socket,msg);\r
                });\r
@@ -689,6 +690,14 @@ function RoomInfomationCollection()
                }\r
                return retval;\r
        };\r
+       this.GetKeys = function(){\r
+               var retval = {};\r
+               for(var rno in collection)\r
+               {\r
+                       retval[rno] = {};\r
+               }\r
+               return retval;\r
+       }\r
 \r
        for(var i=0; i<arguments.length; i++)\r
        {\r
index 981286a..dad764c 100644 (file)
@@ -11,15 +11,12 @@ $critical_message = "[color=red]%s クリティカル![/color]";
 $send_message = "%sからの送信 %s";\r
 $failed_connect_message = "接続に失敗しました";\r
 $invaild_name_message = "名前を空欄にすることはできません";\r
-//パスワードを自由に設定できる部屋のリスト(chatServer.jsと合わせること)\r
-//記述例:\r
-//     {"1":{},"2":{}}\r
-$free_password_rooms = {"1":{}};\r
 \r
 //ここから先は変更しないでください\r
 $prefix_filelist = "!";\r
 $socket = new Object();\r
 $names = {};\r
+$free_password_rooms = {};\r
 $dateFormat = new DateFormat("yyyy/MM/dd HH:mm:ss");\r
 //ここまで\r
 \r
@@ -55,18 +52,24 @@ $(document).ready(function(){
 \r
        $socket = io.connect(location.hostname  + "/" + document.chat_form.rno.value + "?token="+ encodeURIComponent(document.chat_form.token.value));\r
        $socket.on("error",getErrorMessage);\r
+       $socket.on("send roomlist",sendRoomListListerner);\r
        $socket.on("connect",function(){\r
                $socket.on("req pastlog",pastLogEventListerner);\r
                $socket.on("req msg",getMessageEventListerner);\r
                $socket.on("req pastloglist",CreatePastLogList);\r
-               if(!(document.chat_form.rno.value in $free_password_rooms))\r
-               {\r
-                       $socket.json.emit("get pastLogList",{rno:document.chat_form.rno.value});\r
-                       getCurretLog();\r
-               }\r
        });\r
 });\r
 \r
+function sendRoomListListerner(rooms)\r
+{\r
+       $free_password_rooms = rooms;\r
+       if(!(document.chat_form.rno.value in $free_password_rooms))\r
+       {\r
+               $socket.json.emit("get pastLogList",{rno:document.chat_form.rno.value});\r
+               getCurretLog();\r
+       }\r
+}\r
+\r
 function CreateColorList()\r
 {\r
        var c = new Array("00","33","66","99","CC","FF");\r