node.js是否完全集群不同的实例?

时间:2017-06-25 21:27:44

标签: node.js web websocket socket.io

我有一个使用socket.io的简单websocket多人游戏。

我正在使用群集,对于每个新工作者,我实例化一个新的gameServer对象并执行gameServer.start();

GameServer.prototype.start = function () {  
    var express = require("express");
    var app = express();
    var server = require('http').Server(app);

    /** INIT PORT CONNECTION **/
    app.get('/', function (req, res) {
        res.sendFile(__dirname + '/web/index.html');
    });
    app.use('/', express.static(__dirname + '/web'));
    server.listen(2000); //port number for listening
    console.log('Started Server!');

每个gameServer对象都包含自己的PLAYER_LIST,APPLE_LIST等。

这是否意味着每个工作人员都会有不同的数据?这是否意味着如果用户连接到一个工作人员,它可能没有完整的数据集并且位于完全不同的服务器上?

感谢。

2 个答案:

答案 0 :(得分:0)

是的,这些是不同的情况。考虑使用Redis商店或类似的东西在实例之间共享数据。

Redis很不错,因为它很快并且可以在一个简单的put和get基础上工作,你可以很容易地放置和对象并读取对象

答案 1 :(得分:0)

是的,您将拥有不同的数据。尝试使用socket.io-redis包通过Redis同步您的实例。