Уважаемые все,JS: Node.js и Socket.io - Глобал и архитектуре
Im работая с JS в течение нескольких недель, и теперь мне нужно немного разъяснений. Я прочитал много источников и много Q & А также здесь, и это то, что я узнал до сих пор.
Все ниже в связи с Node.js и Socket.io
- Использование глобалов в Node.js "может" быть сделано, но это не лучшая практика, термины: DONT DO IT !
- С сокетами все обрабатывается на один вызов сокета, что означает, что в памяти нет предыдущего вызова. Звонок попадает и обслуживается, поэтому нет «сохраненных» переменных.
Хорошо, я создаю пример чата, несколько пользователей - все они обслуживаются широковещательной рассылкой, но нет личных сообщений, например.
Довольно просто и довольно нормально. Но теперь я застрял в своем уме и наклоняю голову.
Позволяет сказать:
- Мне нужно действовать по просьбе
- Как запрос: "Для всех пользователей, у которых имя BRIAN"
В моей голове Я предположил:
1. Пользовательский объект USER - определены глобально на Node.js
function User(socket) {
this.Name;
this.socket = socket; }
2. чем провести ARRAY из них глобально
users = [];
и newConnection, создать новый пользователь, передать его сокет и сохранить в массиве для дальнейших действий с помощью
users.push(new User(socket));
3. И по просьбе Socket.io, который хочет, чтобы связаться все BRIAN s сделать что-то вроде
for (var i = 0; i < users.length; i++) {
if(user[i].Name == "BRIAN") {
// Emit to user[i].socket
}}
Но после попытки и erroring, отладки, прибегая к помощи и читать по-видимому, это НЕ, как что-то подобное должно быть сделано, и каким-то образом я не могу найти правильный способ сделать это, или, по крайней мере, увидеть/понять его. можете ли вы, пожалуйста, помочь мне, указать мне хорошее направление или предложить лучшую практику здесь?Это было бы удивительным :-)
Примечание: Я не хочу, чтобы хранить данные в БД (то есть следующий шаг), я хочу работать на лету.
Спасибо большое за ваши входы
Оливер
Wow Theo! Огромное спасибо. Хорошо! Это делает, смысл и определенно помогает мне идти дальше. Хорошо :) спасибо, я продолжаю мой jurney :-) –
С удовольствием помогите спариться – Theo