【问题标题】:Socket.io and Express with ERR_SSL_VERSION_OR_CIPHER_MISMATCH带有 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 的 Socket.io 和 Express
【发布时间】:2018-05-06 20:06:37
【问题描述】:

我正在尝试在我的服务器中使用套接字 Io,当我尝试访问该服务时,我创建了浏览器,它给出了以下错误:

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

这是我的服务器代码:

'use strict';

const chalk = require('chalk');
const _ = require('lodash');
const fs = require('fs');

let options = {
    key: fs.readFileSync("privkey.pem"),
    cert: fs.readFileSync("cert.pem")
  };
const app = require('express')(options);
const https = require('https').Server(app);
const io = require('socket.io')(https,{origins:'*:*'});
const bodyParser = require('body-parser');
const multer = require('multer'); // v1.0.5
const upload = multer(); // for parsing multipart/form-data

const sockets = {};

app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded

https.listen(3002, function () {
    console.log(chalk.yellow("Serviço rodando na porta 3002"));
});
io.on('connection', function (socket) {
    console.log(chalk.green("Cliente Conectado"));
    sockets[socket.id] = socket;

    socket.on('disconnect', function () {
        console.log(chalk.red("Cliente Disconectado"));
        delete  sockets[socket.id];
    });
});


app.post('/atualizador', upload.array(), function (req, res) {
    _.each(sockets,function(socket,idSocket){
        console.log(idSocket);
        socket.emit('posicao',req.body);
    });
    res.send('Atualizador ON');
});

这是客户端代码:

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js"></script>
<script>
  const socket = io('https://localhost:3002/');
  socket.on('posicao', function(msg){
    console.log(msg);
  });
</script>

此证书和私钥已在我的域中使用,为什么不能在 socket.io 和 express 上工作?

【问题讨论】:

    标签: node.js express ssl https socket.io


    【解决方案1】:

    你不应该传递任何东西来表达和optionsapphttps.Server

    const app = require('express')();
    const https = require('https').Server(options, app);
    

    【讨论】:

    • 它工作了我的朋友,但现在我正在从服务器向客户端发送一条消息,它正在发送但没有到达客户端。为什么会这样?
    猜你喜欢
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    相关资源
    最近更新 更多