gpt4 book ai didi

node.js - 如何为 NodeJS 设置 einaros/ws 模块以接受 wss(安全 ws)连接?

转载 作者:IT老高 更新时间:2023-10-28 23:10:55 26 4
gpt4 key购买 nike

我正在使用 eniaros/ws NodeJS 使用 web 套接字在 iOS 应用和 NodeJS 服务器之间实时通信的模块。

应用程序运行良好,但现在我必须使用 wss 保护服务器和 iOS 应用程序之间的通信。我有我的 Rapid SSL 证书和 key ,我在服务器上使用以下代码:

var fs = require('fs');

var cfg = {
ssl: true,
port: 8081,
ssl_key: 'key.key',
ssl_cert: 'cert.crt'
};

var httpServ = ( cfg.ssl ) ? require('https') : require('http');

var app = null;

// dummy request processing
var processRequest = function( req, res ) {

res.writeHead(200);
res.end("All glory to WebSockets!\n");
};

if ( cfg.ssl ) {

app = httpServ.createServer({

// providing server with SSL key/cert
key: fs.readFileSync( cfg.ssl_key ),
cert: fs.readFileSync( cfg.ssl_cert )

}, processRequest ).listen( cfg.port );

} else {

app = httpServ.createServer( processRequest ).listen( cfg.port );
}

// passing or reference to web server so WS would knew port and SSL capabilities
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer( { server: app } );

代码与 ws/examples/ssl.js 中给出的示例差不多。 GitHub 上的文件,但由于某种原因,NodeJS/ws 服务器不接受任何 wss 套接字连接。

我正在使用正确的路径 wss://REMOTE_SERVER_IP:8081/并且我正在使用 http://www.websocket.org/echo.html 进行测试.

我进行了广泛搜索,但似乎没有关于如何使用 eniaros/ws 设置安全 wss 的最新教程。

最佳答案

3 个月后,我重新审视了这个问题并解决了这个问题。

代码正确。

我的错误是我试图使用服务器的 ip (wss://xx.xx.xx.xx:8081) 连接客户端,而不是使用为其颁发证书和 key 的子域 (wss ://secure.subdoma.in:8081)。

关于node.js - 如何为 NodeJS 设置 einaros/ws 模块以接受 wss(安全 ws)连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24525397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com