javascript - Node.js/socket.io "global"变量

标签 javascript node.js websocket socket.io

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

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

最佳答案

这不需要什么特别的。它甚至不必是全局性的。只需将其保留在处理客户请求的函数之外即可。

var sharedNumber = 20;

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

socket.on('getNumber', function () {
    return sharedNumber;
});

关于javascript - Node.js/socket.io "global"变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16270997/

相关文章:

javascript - 切换多个复选框 – 原型(prototype) js

javascript - 当参数来自不同地方时如何调用函数

javascript - 无法将 skifree 添加为复活节彩蛋

java.lang.IllegalStateException : The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method

javascript - 使用 Angular prime ng 导入文件问题

javascript - NestJS 在服务类中丢失此内部函数方法的上下文

node.js - 可以模拟多个并发连接来测试 nodejs 应用程序

node.js - Node js为每个请求创建不同的 session ID

java - websocket 代码不适用于 Prod Tomcat 服务器 - 404 错误

java - cometd 通过 websocket : "unknown bayeux transport"