2

我有一个允许两个用户连接到 websocket 的应用程序(使用 socket.io 用 node.js 编写)。假设用户可以从 20 中扣除一个数字(由服务器定义),两个用户中的每一个都可以轮流进行扣除。

我的问题是,我应该如何/在哪里设置 20 的“全局”变量?目前我在客户端连接到套接字时进行了设置,但这是不正确的,因为如果我们连接了用户 1 并且他删除了“5”,那么用户 2(稍后连接)应该只会看到最大数量是 15 而不是 20 ,使用我当前的方法,用户 2 也将看到 20。我应该在创建 http 服务器时创建变量并为其分配值“20”吗?

4

1 回答 1

2

这不需要什么特别的。它甚至不必是全球性的。只需将其保留在处理客户请求的功能之外。

var sharedNumber = 20;

socket.on('subtractNumber', function (number) {
    sharedNumber -= number;
    return sharedNumber;
});

socket.on('getNumber', function () {
    return sharedNumber;
});
于 2013-04-29T14:23:02.817 回答