簡體   English   中英

node.js的TLS模塊中''newSession''和'resumeSession'事件的文檔或示例

[英]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.

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