簡體   English   中英

使用Node.js和Socket.io流式搜索查詢(流式傳輸到給定的套接字!)

[英]Streaming search queries with Node.js and Socket.io (streaming to a given socket!)

我正在Node中編寫一個簡單的應用程序,該應用程序將在客戶端收集搜索查詢,將其發送到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服務器在任何地方廣播數據。 如何修改腳本? 提前致謝。

我希望管理員將消息發送到服務器(比“ AdminLogin”更安全)以注冊為admin,然后您只需將其發送給該客戶端即可。

服務器:

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);
  });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM