質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

2368閲覧

node.jsで、ラジオボタンの「on」ボタンを押している人の人数をリアルタイムに取得したい

yahret45

総合スコア41

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2016/10/09 11:12

編集2016/10/09 12:41

引用テキスト授業中に使うアプリで、

生徒がラジオボタンの「なるほど!」を選択している人の数をリアルタイムに
取得して、変数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});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mit0223

2016/10/09 14:26

それで、どのように(結果があわない、エラーメッセージが表示される、そもそも起動しないなど)うまくいかないのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問