繁体   English   中英

HTTPS 服务器找不到 SocketIO 但 Http 可以

[英]HTTPS Server Can't Find SocketIO but Http can

我只是在学习如何为我的 nodejs Web 应用程序使用 https,并且我正在尝试使用 Socket.IO。 但是,当我尝试为客户端包含 socket.io js 时,出现错误。

在此处输入图片说明

我的客户端代码:

<html>
<head>
    <title></title>
</head>
<body>
<h1>Hi</h1>
<button onclick="newMSG()">Test</button>
<script type="text/javascript" src="//socket.io/socket.io.js"></script>
    <script type="text/javascript" src="src/client.js"></script>
</body>
</html>

客户端JS:

const sock = io();

function newMSG(){
sock.emit('newPost', 'test','123','4:40am')
}

我的服务器端:

const socketio = require("socket.io");
var fs = require('fs');
var http = require('http');
var https = require('https');
var express = require('express');
var app = express();
const clientPath = `${__dirname}/../client/`;
app.use(express.static(clientPath));

const credentials = {
  key: fs.readFileSync('KEY'),
  cert: fs.readFileSync('CERT')
};

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);

httpServer.listen(80);
httpsServer.listen(443);

const io = socketio(httpServer);

io.on('connection', (sock) => {
    sock.emit('messageI', 'Server: User Connected');
    console.log("New Connection");

    sock.on('newPost', (title,text, account, time) => {
        var info = {
            titleP: title,
            textP: text,
            accountP: account,
            timeP:time
        }
        savedData = JSON.stringify(info)
        fileName = title.substring(0,5) + ".json"
        fs.writeFile(filename, savedData)
    });
});


httpServer.on('error', (err) => {
    console.error('server error:', err);
});

值得注意的是,仅当我访问我网站的 HTTPS 版本时才会出现此问题,而不是我的 HTTP 版本。 任何帮助,将不胜感激。

编辑:我通过在脚本前添加第二个“/”解决了屏幕截图中的“中间”错误

好的,我修好了。 我只需要将 socket.io 从我的 http 服务器移动到服务器端的 https

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM