2017-02-21 4 views
-1

У меня проблема с websocket serwer в node.js.Узел, js Websocket Server. Как идентифицировать клиента и отправлять конкретные данные из базы данных mysql?

У меня есть база данных в MYSQL. В таблице с именем «пользователи» содержится идентификатор игроков, уровень жизни, уровень и т. Д. Как узнать, кому я должен отправлять данные из базы данных?

В php после входа в i я делал переменную сессии как $ _SESSION ['id'] = id, которая была подключена к паролю и логина в базе данных. И затем я извлекал данные из базы данных, например: SELECT life в пользователях WHERE ID = {$ _ SESSION ['id']}.

Как я могу сделать что-то подобное в сервере веб-узла Node.js? Я имею в виду, что если значение в базе данных будет изменено, оно отправит новое значение конкретному клиенту и обновит конкретный div.

Я надеюсь, что любое решение моей проблемы. Спасибо.

ответ

0

Вы должны поддерживать $_SESSION самостоятельно. Например:

const session = {}; // your session. 
wss.on('connection', (conn) => { 
    conn.on('message', (message) => { 
     switch(message.opreate) { 
      case 'login': // your login message 
       const user = login(message.account, message.pass); 
       session[user.id] = user; 
       conn.userId = user.id; 
      case 'other': // your other message 
       const user = session[conn.userId]; 
       // ... more code 
     } 
    }) 
}) 
+0

Итак, я понимаю, что это код на стороне сервера? Если да, то как передать аргументы от клиента на сервер (message.account и message.pass)? Я должен сделать это во время входа? После нажатия кнопки «Войти»? –

+0

Думаю, вам стоит больше узнать о [WebSocket] (https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) и о различии между «HTTP» и «WebScoket». – sjfkai

0

Так что я понимаю, что это код на стороне сервера?

Если да, то как передать аргументы от клиента на сервер (message.account и message.pass)? Я должен сделать это во время входа? После нажатия кнопки «Войти»?