簡體   English   中英

Node.js + Express.js + Socket.io 端口 443(HTTPS TLS/SSL)

[英]Node.js + Express.js + Socket.io on port 443 (HTTPS TLS/SSL)

我有一個包含 Node.js、Express.js 和 Socket.io 的應用程序,它使用除 443 之外的任何端口都可以正常運行。服務器旨在僅通過 HTTPS 端口 443 運行,同樣,websocket 也應該加密。

CODE THAT WORKS

var fs = require('fs');
var https = require('https');
var express = require('express');
var socket = require('socket.io');
var sslOptions = {
    key: fs.readFileSync(__dirname + '/../ssl/server.key,
    cert: fs.readFileSync(__dirname + '/../ssl/server.pem,
    ciphers: 'ECDHE-RSA-AES256-SHA:AES256-SHA:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM',
    honorCipherOrder: true
};

var app = express();
var server = https.createServer(sslOptions, app);
var io = socket.listen(server, {
    "log level" : 3,
    "match origin protocol" : true,
    "transports" : ['websocket']
});
server.listen(8443);

當我將端口(最后一行)更改為 443 時,節點服務器立即崩潰並顯示錯誤:

warn: error raised: Error: listen EADDRINUSE

顯然,您已經有一台服務器正在偵聽您機器上的該端口。 是否有可能您在其他地方啟動了此服務器並且它仍在運行?

這意味着該端口正在使用中,您可以使用以下命令進行檢查:sudo netstat -tapen | grep ":443"。 如果您使用 Apache、Ngnix 或其他服務器,很可能就是它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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