我有一个使用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等。
这是否意味着每个工作人员都会有不同的数据?这是否意味着如果用户连接到一个工作人员,它可能没有完整的数据集并且位于完全不同的服务器上?
感谢。
答案 0 :(得分:0)
是的,这些是不同的情况。考虑使用Redis商店或类似的东西在实例之间共享数据。
Redis很不错,因为它很快并且可以在一个简单的put和get基础上工作,你可以很容易地放置和对象并读取对象
答案 1 :(得分:0)
是的,您将拥有不同的数据。尝试使用socket.io-redis包通过Redis同步您的实例。