我有一个应用程序,允许两个用户连接到一个websocket(这是写在node.js使用socket.io)。假设用户可以从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;
});