与socket.io的小多人POF

时间:2012-08-14 10:30:39

标签: jquery node.js socket.io

我正在尝试使用socket.io创建一个小的POF,这个想法是每个连接的玩家获得一个球,并可以将其拖放到浏览器视图周围;那么其他人就可以看到它在移动,也可以自己移动。

目前,该应用只有一个球,每个玩家都可以控制它,使用以下代码:

var express = require('express');
var app = express();

var server = app.listen(80);
var io = require('socket.io').listen(server);

var posx = 10;
var posy = 10;

app.configure(function() {
    app.use(express.static(__dirname + '/public'));
});

io.sockets.on('connection', function (socket) {
    socket.emit('start', {
        x: posx,
        y: posy
    });

    socket.on('newpos', function (data) {
        posx = data["x"];
        posy = data["y"];
        socket.broadcast.emit('move', { x: posx, y: posy });
    });
});

我如何获得更多球并且每个球员控制自己的球?我在考虑以下几点:

使用包含会话ID和球位置坐标的Redis哈希中存储的Express句柄会话。这将适用于新玩家连接,放置项目,然后将每个移动广播给每个人(但发送者)。但我确信缺少一些东西。

粗略地说,我应该看哪个方向?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您在posx回调中移动posyconnection,则每个玩家(也称为新连接)在服务器上都有自己的球坐标。因此,您在connection回调中执行的所有操作仅适用于已连接的播放器。这应该会让你朝着正确的方向前进。 :)

BTW:什么是 POF