javascript - 使用 Socket.IO 显示 Compound.js 中的对象计数

标签 javascript node.js express socket.io

我正在为一个使用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 方法、 Controller 和 View 。

我现在如何找到帖子总数并将该值传递给服务器端 JS?

最佳答案

简单地计算服务器端的发出次数并发送?

    ...
    var emits = 0;
    var connections = setInterval(function () {
        emits++;
        socket.emit('news', { clients: activeClients , num_messages: emits});
    }, 1000);

    ...

或者创建可以从客户端轮询的特定消息

关于javascript - 使用 Socket.IO 显示 Compound.js 中的对象计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15004323/

相关文章:

javascript - AngularJS 将变量从自定义指令传递到模板

node.js - 在 node js 的 jade 模板中使用 session 变量

javascript - node.js/express app - 使用哪种异步方法来替换对 HGET 的嵌套调用?

node.js - 如何处理生产中的mongodb "schema"变化

node.js - 如何部署 Node.js 应用程序而不导致停机

javascript - Node 强大的单选按钮

javascript - javascript 对象表示法中的尾随逗号和/或不存在的键是否正常?

javascript - 每个 HTML 输入上的 ReactJS handleChange

javascript - 尝试使用 koa bodyparser 和 ctx.body undefined

node.js - 如何为快速 session req.session.destroy() 编写简单的 Jest 模拟