引用テキスト授業中に使うアプリで、
生徒がラジオボタンの「なるほど!」を選択している人の数をリアルタイムに
取得して、変数goodsに挿入をしたいと思っております。
お知恵をお貸し頂けますと嬉しいです。
どうぞよろしくお願いします。
javascript
1var socket = io("http://localhost:3010/"); 2socket.on('vote',function(data){ 3 console.log(data); 4}); 5 6function getGoodCount(id) { 7 if (goods[id]) { 8 return goods[id]; 9 } else { 10 return 0; 11 } 12} 13 14$('#on').click(function(){ 15 console.log("う〜ん。。"); 16 socket.emit('vote',{state:"good"}); 17}); 18 19$('#off').click(function(){ 20 console.log("なるほど!"); 21 socket.emit('vote','bad'); 22}); 23 24 25
HTML
1<div class="sample clearfix"> 2 <input type="radio" name="s2" id="off" value="0" checked="checked"> 3 <label for="off" class="switch-off" id="btnng">う〜ん。。</label> 4 <input type="radio" name="s2" id="on" value="1"> 5 <label for="on" class="switch-on" id="btnok">なるほど!</label> 6 </div>
node.js
1 2var http = require('http'); 3var path = require('path'); 4 5var socketio = require('socket.io'); 6var express = require('express'); 7 8var router = express(); 9var server = http.createServer(router); 10var io = socketio.listen(server); 11 12router.use(express.static(path.resolve(__dirname, 'public'))); 13 14var clients = {}; 15 16io.on('connection', function (socket) { 17 console.log("ID: "+socket.id.substring(2)+"has connected"); 18 clients[socket.id] = { 19 vote:'' 20 }; 21 22 io.sockets.emit('count', socket.client.conn.server.clientsCount); 23 24 socket.on('vote', function(data){ 25 clients[socket.id].vote = data; // good or bad 26 var result = calcVote(clients); 27 io.sockets.emit('vote', result); 28 }); 29 30 socket.on('disconnect', function() { 31 delete clients[socket.id]; 32 io.sockets.emit('count', socket.client.conn.server.clientsCount); 33 }); 34 35 36}); 37 38var calcVote = function(calcclients){ 39 var sums = { 40 good:0, 41 bad:0 42 }; 43 Object.keys(calcclients).forEach(function(id){ 44 var client = calcclients[id]; 45 switch (client.vote) { 46 case 'good' : 47 sums.good += 1; 48 break; 49 case 'bad' : 50 sums.bad += 1; 51 break; 52 } 53 }); 54 return sums; 55}; 56 57server.listen(process.env.PORT || 3010, process.env.IP || "0.0.0.0", function(){ 58 var addr = server.address(); 59 console.log("Chat server listening at", addr.address + ":" + addr.port); 60});
あなたの回答
tips
プレビュー