Потоковые поисковые запросы с Node.js и Socket.io (потоковая передача в заданный сокет!) - PullRequest
1 голос
/ 08 апреля 2011

Я пишу простое приложение в Node, которое будет собирать поисковые запросы на стороне клиента, отправлять его на сервер Node и с сервера на страницу администратора, где я могу отслеживать их.Однако я хочу помнить о безопасности, поэтому хочу отправлять поисковые запросы ТОЛЬКО с узла на страницу администратора.Это то, что у меня есть:

Узловой сервер:

var socket = io.listen(app);
socket.on('connection', function(client){
  client.on('message', function(data){
    socket.broadcast(data);
  });
});

Клиент:

$.getScript('http://127.0.0.1:8000/socket.io/socket.io.js', function() {
    var socket = new io.Socket('127.0.0.1', {'port': 8000});
    socket.connect();
    socket.send(search_query);
    });
});

Администратор:

$(document).ready(function(){
  socket = new io.Socket('172.20.14.114', {port: 3000});
  socket.connect();
  socket.on('message', function(data){
    console.log(data);
  });
});

Кодвыше работает отлично, но я хочу направить 'search_query' ТОЛЬКО на страницу администратора (по соображениям безопасности).Теперь мой Node-сервер передает данные везде.Как мне изменить мой сценарий?Заранее спасибо.

1 Ответ

1 голос
/ 09 апреля 2011

Я бы попросил администратора отправить сообщение на сервер (что-то более безопасное, чем «AdminLogin»), чтобы зарегистрироваться в качестве администратора, тогда вы можете просто отправить этому одному клиенту.

Сервер:

var socket = io.listen(app), admin;
socket.on('connection', function(client){
  client.on('message', function(data){
    if( data === 'AdminLogin' ) {
      admin = client;
    }
    if( admin ) {
     admin.send(data);
    }
  });
});

Администратор:

$(document).ready(function(){
  socket = new io.Socket('172.20.14.114', {port: 3000});
  socket.connect();
  socket.send('AdminLogin');
  socket.on('message', function(data){
    console.log(data);
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...