[英]Documentation or examples for ''newSession'' and 'resumeSession' events in TLS module for node.js
我很難找到node.js中TLS模塊的'newSession'和'resumeSession'事件的文檔和示例。
歡迎任何這方面的鏈接或幫助。 我需要了解更多關於這些事件的信息,以便在節點中實現一個容錯的tls連接。
這很簡單: 文檔 。
sessionData
是一個簡單的對象,您可以使用JSON.stringify(sessionData)
並保存在Redis數據庫中。 稍后,您可以再次使用JSON.parse(sessionData)
並恢復會話。
服務器本身只需要會話ID(由客戶端發送)來查找其會話數據(如果可用)。 如果服務器無法找到會話ID的相應會話數據,它將啟動新會話。
/**
* Module dependencies.
*/
var tls = require("tls");
/**
* Initialize a new TLS server.
*/
var opts = {
cert: fs.readFileSync("./ssl/cert.pem")
, key: fs.readFileSync("./ssl/key.pem")
}
, server = tls.createServer(opts).listen(443);
/**
* TLS session management.
*/
var sessions = {};
server.on("newSession", function(sessionId, sessionData) {
sessions[sessionId.toString("hex")] = sessionData;
});
server.on("resumeSession", function(sessionId, callback) {
sessionId = sessionId.toString("hex");
if(sessionId in sessions)
callback(null, sessions[sessionId]); // resume an existing session
else
callback(null, null); // new session will be started
// you could also emit an error, which wil terminate the connection
// callback(new Error("lol wut"));
});
/**
* Request handler.
*/
server.on("request", function(req, res) {
res.end("Hello World");
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.