运行 服务器上的 Cboden Ratchet Websocket

Running Cboden Ratchet Websocket on the server

我在本地机器上创建了聊天服务并成功 运行。 此聊天服务在前端使用 cboden rechat 库和自定义 JS。

所以我把所有东西都上传到 CENTOS 服务器上并尝试 运行 聊天。 我收到连接被拒绝的错误。但是我检查了服务器防火墙,打开了端口(我将端口从 8080 更改为 60000)。 我试图在这个目标上 运行 服务器:

0.0.0.0:60000

并像这样从客户端连接

SERVERIP:60000

DOMAIN:60000

尝试 运行 服务器也作为 ROOT,但我得到同样的错误。

是客户端防火墙问题吗?我该如何解决?找到了一个js包,通过80端口连接到聊天服务器,没有防火墙问题。我不能使用这个包,因为在我们的服务器上我们有一百个服务 运行。所以我决定使用60000端口。

我检查了端口 - 它是免费且畅通无阻的。

我的 .env 文件

CHAT_PROTOCOL=wss://
CHAT_ADDRESS=0.0.0.0
CHAT_PORT=60000

客户端 JS

 var conn = new WebSocket(chat.protocol + SERVERIP +':'+ chat.port +'/chat');
//chat.protocol is wss://
//chat.port is 60000

问题来了

WebSocket connection to 'wss://SERVERIP:60000/chat' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

同样,它在我的本地机器上非常完美 (ubuntu)

我在 5 个月后找到了解决方案。

我的域使用 SSL 连接,因此我应该通过声明服务器变量来包含 CRT 和 KEY 文件。

const server = 
     require('https').createServer({
        key: fs.readFileSync('./ssl/keys/************************.key'),
        cert: fs.readFileSync('./ssl/certs/************************.crt'),
        ca: fs.readFileSync('./ssl/certs/************************.crt'),
        requestCert: false,
        rejectUnauthorized: false
    },express);