NodeJS从现有tl创建https.服务器
NodeJS create https from existing tls.Server
是否有可能在现有tls之上创建https服务器。服务器文档中写道:"这个类是tls.Server..的一个子类。"。我想使用tls。服务器处理纯数据流,如果需要,让https服务器处理其余部分
问候
没有任何官方/支持的方式。
然而,如果您查看https服务器的源代码,它只是连接TLS服务器和HTTP连接处理程序的粘合剂:
function Server(opts, requestListener) {
if (!(this instanceof Server)) return new Server(opts, requestListener);
if (process.features.tls_npn && !opts.NPNProtocols) {
opts.NPNProtocols = ['http/1.1', 'http/1.0'];
}
/// This is the part where we instruct TLS server to use
/// HTTP code to handle incoming connections.
tls.Server.call(this, opts, http._connectionListener);
this.httpAllowHalfOpen = false;
if (requestListener) {
this.addListener('request', requestListener);
}
this.addListener('clientError', function(err, conn) {
conn.destroy();
});
this.timeout = 2 * 60 * 1000;
}
要在TLS连接处理程序中切换到HTTPS,可以按照以下步骤进行操作:
var http = require('http');
function myTlsRequestListener(cleartextStream) {
if (shouldSwitchToHttps) {
http._connectionListener(cleartextStream);
} else {
// do other stuff
}
}
以上代码基于0.11版本(即当前主版本)。
警告
在升级到新版本的过程中,使用内部Nodeneneneba API可能会咬到你(即,你的应用程序可能在升级后停止工作)。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- 从javascript创建一个列表
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何访问声音管理器2创建的声音对象
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 使用Facebook live API创建实时视频对象时的隐私设置
- 在动态创建的元素上获取对特定选择器的引用
- 如何创建带有插槽的vue js组件预加载程序
- 如何在创建键时引用来自同一对象的键
- 如何创建JSON数组
- 从html创建一个指令,该指令按类名应用函数
- 使用Javascript创建测验页面
- 更改使用Chart.js创建的图表中的轴线颜色
- 组合Bookmarklets以在HTTP和HTTPS之间创建切换
- 在nodejs中创建HTTPS api并对其进行测试
- NodeJS从现有tl创建https.服务器
- 如何在 Node.js 中创建 HTTPS 服务器