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

查看:158
本文介绍了端口443上的Node.js + Express.js + Socket.io(HTTPS TLS / SSL)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有Node.js,Express.js和Socket.io的应用程序,使用除443之外的任何端口运行良好。服务器只能在HTTPS端口443上运行,同样,websocket也应加密。

I have an app with Node.js, Express.js, and Socket.io that runs fine using ANY port except 443. The server is meant to only operate over HTTPS port 443 and likewise, the websocket should be encrypted as well.

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时,节点服务器立即崩溃并出现错误:

When I change the port (last line) to 443, the Node server crashes right away with an error:

warn: error raised: Error: listen EADDRINUSE


推荐答案

显然你已经有一台服务器正在监听你机器上的那个端口。你有可能吗?在其他地方启动此服务器并且它仍在运行?

Apparently you've already got a server listening on that port on your machine. Is is possible that you started this server elsewhere and it's still running?

这篇关于端口443上的Node.js + Express.js + Socket.io(HTTPS TLS / SSL)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆