以下代码用于 node.js 中的 socket.io 服务器
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var clients=[];
var gamename={};
io.on('connection', function(socket){
socket.on('game', function(data){
gamename[data.gamename]=data.number; //problem is here
});
});
gamename=游戏名称; number=用户id;
- 可以有更多的游戏;
- 每个游戏可以有更多的用户
每当与服务器建立连接时,我都会在客户端发出带有一些数据(包括游戏名称和编号)的游戏事件。因此,每当新客户端连接到服务器时,游戏事件就会在服务器中触发。在服务器端的游戏事件中,我想将“数字”推送到对象属性游戏名称(变量)。
例子:
var games={};
只要有连接,例如用户 ID 为 34 的扑克牌游戏 我想要做 var gamename='poker';
gamename[gamename] -> I want this automatically created as array, or anything, but I want to push user id's.
由此产生的反对应该是。
games={'poker' : [34]};
如果我有另一个用户使用用户 ID 45 连接扑克牌,
games={'poker' : [34, 45]};
并且如果用户连接到用户 67 玩板球
games={'poker' : [34, 45],'cricket' : [67]};
初始对象
games={};
经过一些连接(可以有n个连接)
games={'poker' : [34, 45],'cricket' : [67]};
如果我的问题不清楚,如果有人问我会详细解释。 提前致谢
最佳答案
像这样:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var clients=[];
var gamename={};
io.on('connection', function(socket){
socket.on('game', function(data){
gamename[data.gamename] = gamename[data.gamename] || [];
gamename[data.gamename].push( data.number ); //no more problem
});
});
关于Javascript:如何将数组值添加到对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36712178/