Javascript уникальный массив для каждого пользователя сокета - PullRequest
0 голосов
/ 19 сентября 2018

У меня проблема!

Когда два пользователя играют в игру и одновременно нажимают очень близко, все два пользователя получают то, что должен получить только второй пользователь.

Это так?можно сделать массив по его идентификатору пользователя или что-то в этом роде?

У меня также есть для анти-спам, как это

anti_spam[socket.request.session.passport.user.id]

Но это JSON

Если я попробую то же самое илимассив, я получаю сообщение об ошибке SyntaxError: Unexpected token [

Как я могу убедиться, что каждый пользователь при открытии одновременно получает только свои собственные элементы, а не элементы от другого пользователя?

Я использую сокетыВот уникальный идентификатор пользователя socket.request.session.passport.user.id

Это массив

var WinItem = [];

И если два пользователя запускаются как миллисекунды одновременно, то второй перезаписывает первый ...

1 Ответ

0 голосов
/ 19 сентября 2018

!КОД НЕ ПРОВЕРЕН!

Подождите, подождите, подождите, подождите ...

Итак, я знаю только ws (Node.js), но там вы впервые получаете событие onConnection.В этой функции вы добавляете UID к элементу соединения.Затем, если вы получаете сообщение от клиента, вы должны иметь объект подключения и, следовательно, UID.Теперь вы можете сохранить выигранный предмет в объекте соединения (если хотите), например, так:

ws.onConnection = con => {
    con.UID = generateUID();
    con.inventory = [];
    con.onMessage = msg => {
        [..STUFF/CODE/YAY...]
        con.inventory.push(item);
        con.send("You've won wooohoo");
    });
});

Вы имели в виду нечто подобное?В противном случае, пожалуйста, будьте более конкретны о том, что вы хотите.(Вы также можете хранить вещи где-то еще вместе с UID, но это добавит немного кода)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...