以下代码适用于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;
每当与服务器建立连接时,我在客户端发出一些数据(包括游戏名称和号码)的游戏事件。因此,每当新客户端连接到服务器时,在服务器中触发游戏事件。在服务器端的游戏事件中,我想将“数字”推送到对象属性gamename(变量)。
示例:
var games={};
每当有用户ID为34的游戏扑克连接时 我想要做 var gamename ='扑克';
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]};
如果我的问题不明确,我会详细解释,如果有人问的话。 提前致谢
答案 0 :(得分:6)
像这样:
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
});
});