javascriptのこのコードについて解説をお願いしたいです。
js
1server.js 2 3let games = {};//ゲーム管理用のオブジェクトを補完します 4let matti = [];//待機中の人のsocket idを補完します。 5let gameid = 0; 6 7io.on('connection', function (socket) { 8 let id = socket.id; 9 let room = ''; 10 socket.on('newgame', function () {//誰かがマッチングし始めたら 11 matti.push(id);//待機中の人のsocket idを配列に追加します。 12 13 if (matti.length == 2) {//二人そろったら 14 gameid = random();//ゲームidを作成 15 games[gameid] = new gamedate(gameid);//ゲーム管理用のクラスを作成 16 io.to(matti[0]).emit('ready', gameid);//待機中の人にゲーム開始を知らせます。 17 io.to(matti[1]).emit('ready', gameid); 18 matti = [];//配列を初期化します 19 } 20 21 }); 22 23※random()は英数字4文字ランダムを作る関数
html
1 2 <script> 3 var socket = io.connect(); 4 socket.emit('newgame'); 5 6 socket.on('ready', function (msg) { 7 var gameid = msg; 8 window.location.href = '/game/' + msg; 9 }); 10 </script>
HTMLへ接続したユーザをmatti変数へ格納し、2人入った(配列が1になる)らHTMLのscriptより
「'/game/' + msg;」のディレクトリへ移動しているように見受けられます。
msgはrandom()にてランダムに決定されるため、2人ずつ入る度URLが変わるため別々の部屋が作られることになると思うのですが、node.jsは同じページでもURLを変えることが可能なのでしょうか?
その原理を知りたいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー