Compound.js (node.js/Express.js 上に構築) を使用する新しいプロジェクトで Socket.IO をテストしていますが、問題が発生しました。基本を機能させることができ、次のメッセージは正常に機能します。
サーバー側 JS (applicationname/config/initializers/socketio.js):
var sio = require('socket.io');
var http = require('http');
var activeClients = 0;
module.exports = function (compound) {
var app = compound.app;
var server = http.createServer(app);
compound.server = server;
var io = compound.io = sio.listen(server);
io.sockets.on('connection', function (socket) {
activeClients +=1;
var connections = setInterval(function () {
socket.emit('news', { clients: activeClients });
}, 1000);
socket.on('disconnect', function () {
activeClients -= 1;
io.sockets.emit('user disconnected');
clearInterval(connections);
});
});
}
フロントエンド JS (applicationname/public/index.html):
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
function msgReceived(msg){
$clientCounter.html(msg.posts);
}
$(document).ready(function () {
$clientCounter = $("#client_count");
socket.on('news', function (data) {
msgReceived(data);
socket.emit('my other event', { my: 'data' });
});
});
</script>
私が今やろうとしているのは、サーバー上で作成された投稿の数を取得することです。デフォルトの足場を使用して、Posts メソッド、コントローラー、およびビューを生成しました。
投稿の総数を見つけて、その値をサーバー側の JS に渡すにはどうすればよいですか?