NODEJS,端口 8070 上的 SOCKET 在渲染时连接但不直接打开

NODEJS,SOCKET on port 8070 connecting on rendering but not directly opening

我有一个控制面板,其中 Apache 已激活并在端口 80,443 上显示我的网站 https://mydomain.io

下面的设置适用于端口 80,但不适用于其他端口,如果我想 运行 在端口 8070

我想 运行 端口 8070 上的 nodejs 即 http://IP:8070

服务器端

server.js

var compression = require('compression');
var _       = require('lodash');
var express = require('express');
var server  = express();
var app     = require('http').createServer(server);
var io      = module.exports.io = require('socket.io')(app);
server.use(compression());
app.get('/', (req, res) => {
   res.sendFile(__dirname + '/tester.html');
});
app.listen(8070, function(){
    console.log('listening on *:' + 8070);
});

现在,当我打开这个 IP:8070 时,它会呈现 HTML 并且它 连接 到套接字

正在工作

console.log(io.connect());

但是我想通过mydomain.io

访问它

所以如果我尝试访问 mydomain.io/tester.html 或我电脑上的本地文件

它没有连接到套接字

//NONE 这些工作!

HTTP 出现错误:

   console.log(io.connect('http://mydomain.io:8070/', { transports: ["websocket"]}));
   console.log(io.connect('http://localhost:8070/', { transports: ["websocket"]}));
   console.log(io.connect('http://localhost/', { transports: ["websocket"]}));
   console.log(io.connect('http://mydomain.io/', { transports: ["websocket"]}));
   console.log(io.connect());

GETTIG ERR: Mixed Content: The page at '<URL>' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws:<URL>/socket.io/?EIO=3&transport=websocket'. This request has been blocked; this endpoint must be available over WSS.

HTTPS 不工作

   console.log(io.connect('https://mydomain.io:8070/', { transports: ["websocket"]}));
   console.log(io.connect('https://localhost:8070/', { transports: ["websocket"]}));
   console.log(io.connect('https://localhost/', { transports: ["websocket"]}));
   console.log(io.connect('https://mydomain.io/', { transports: ["websocket"]}));

端口 80 可以正常工作,但不能在其他端口上使用

但是如果我 运行 我的 server.js 在端口 80 并使用 service httpd stop

停止 apache

然后它可以与 mydomain.io/tester.html 或我电脑上的本地文件一起使用

var socket = io.connect('wss://mydomain.io'); //Socket Address WOKRING

是的,谢谢 @v1shva,尝试 https.createserver 而不是使用我的 cpanel 密钥和证书文件的 http createserver 我可以从任何地方连接它。

谢谢