javascript - TLS 到多个客户端和不同的消息
问题描述
我正在规划一个基于 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');
});
也许你可以举个例子,因为我完全不清楚。谢谢你的帮助。如果您不清楚我的问题,请告诉我。
解决方案
'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();
});
推荐阅读
- perl - 有没有一种简单的方法可以在 perl 中将 unicode 字符串发送到 Windows 剪贴板?
- html - 动态引导表列:每列的宽度相同(无 Java 脚本)
- python - 从图像中获取的 NumPy 数组中的值是什么意思?
- python - 如何在 python Json 中停止此解码错误
- python-3.x - Windows 驱动器号检测
- ios - CoreBluetooth / CBCentralManagerDelegate 中的一条奇怪消息
- ssis - Visual Studio - 服务器上数据库的 ssis 项目
- c# - 使用 c# 库的 Powershell 无法识别具有不同返回类型的重载方法
- c# - 如何在 Program.Main 上将 SetBasePath 设置为 dll 位置
- google-chrome - 谷歌放置 api - 无法在 chrome 扩展中正确加载