![](/img/trans.png)
[英]Socket.io and Express ERR_SSL_VERSION_OR_CIPHER_MISMATCH
[英]Socket.io and Express with ERR_SSL_VERSION_OR_CIPHER_MISMATCH
我正在嘗試在服務器中使用套接字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上使用?
您應該不傳遞任何東西來表達和將options
和app
傳遞給https.Server :
const app = require('express')();
const https = require('https').Server(options, app);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.