TLS для нескольких клиентов и разных сообщений - PullRequest
0 голосов
/ 25 октября 2018

Я планирую систему безопасности на основе tcp.Я хочу защитить его с помощью TLS / SSL.Я хочу, чтобы Клиент отправил сообщение на сервер, сервер должен проверить его и отправить всем остальным клиентам сообщение обратно.Я думаю, что неясно, как с этим справиться, потому что в документации к node.js tls только показано, как вы подключаетесь к серверу и получаете сообщение обратно.

Это код документации:

const tls = require('tls');
const fs = require('fs');

const options = {
  key: fs.readFileSync('server-key.pem'),
  cert: fs.readFileSync('server-cert.pem'),

  rejectUnauthorized: true,
};

const server = tls.createServer(options, (socket) => {
  console.log('server connected',
              socket.authorized ? 'authorized' : 'unauthorized');
  socket.write('welcome!\n');
  socket.setEncoding('utf8');
  socket.pipe(socket);
});
server.listen(8000, () => {
  console.log('server bound');
});

Может быть, вы могли бы привести пример, потому что мне это совершенно непонятно.Спасибо за вашу помощь.Если мой вопрос вам неясен, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 25 октября 2018
'use strict';
var tls = require('tls'); 
var fs = require('fs'); 
const PORT = 1337; 
const HOST = '127.0.0.1' 
var options = { 
key: fs.readFileSync('private-key.pem'), 
cert: fs.readFileSync('public-cert.pem') 
}; 
var users= [];
var server = tls.createServer(options, function(socket) { 

users.push(socket)



socket.on('data', function(data) { 
    for(var i = 0; i < users.length; i++){
    if(users[i]!=socket){
        users[i].write("I am the server sending you a message.");       
        }
}

console.log('Received: %s [it is %d bytes long]', 
data.toString().replace(/(\n)/gm,""), 
data.length); }); 


}); 

server.listen(PORT, HOST, function() { 
console.log("I'm listening at %s, on port %s", HOST, PORT); 
}); 

server.on('error', function(error) { 
console.error(error); 

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