NodeJS HTTPS错误(520)

时间:2017-09-09 18:44:59

标签: javascript node.js https

我不知道这个错误是什么,或者如何修复它。还在学习NodeJS,对于noobness抱歉。

我也在使用Cloudflare。

node: ../src/util-inl.h:196: TypeName* node::Unwrap(v8::Local<v8::Object>) 
[with TypeName = node::TLSWrap]: Assertion `(object->InternalFieldCount()) > (0)' 
failed.

这是我正在使用的代码。

var options = {
    key: fs.readFileSync('/my.key'),
    cert: fs.readFileSync('/my.pem')
}   

var serverPort = 2096;
var app = require('express')();
var server = https.createServer(options, app);
var io = require('socket.io')(server);

server.listen(serverPort, function(){
    console.log('Connected on port *:%s', serverPort);
});

然后在客户端

var socket = io.connect('https://example.com:2096');

一旦我做了什么,控制台就会显示这个

WebSocket connection to 'wss://example.com:2096/socket.io/?EIO=3&transport=websocket&sid=cTlTQnHvcv0LwbBdAAAA' failed: Error during WebSocket handshake: Unexpected response code: 520

1 个答案:

答案 0 :(得分:0)

520错误本质上是一个“全能”响应,用于原始服务器返回意外事件或不允许/解释的事件(协议违规或空响应)。

虽然可以通过非常独特和奇怪的边缘情况触发520错误,但它们通常是由以下原因引起的:

  • 连接重置(成功进行TCP握手后)
  • 标头超过Cloudflare的标头大小限制(超过8kb)
  • 来自原点的空响应
  • 无效的HTTP响应
  • HTTP响应缺少响应标头