![](/img/trans.png)
[英]Socket.io and Express with ERR_SSL_VERSION_OR_CIPHER_MISMATCH
[英]Socket.io and Express ERR_SSL_VERSION_OR_CIPHER_MISMATCH
我的代码托管在GitHub Pages上。 我正在尝试通过IP将客户端连接到计算机的Node.JS服务器,但连接显示错误ERR_SSL_VERSION_OR_CIPHER_MISMATCH
。
那是我的服务器代码:
var app = require('express')();
var server = require('https').createServer(app);
var io = require('socket.io')(server);
app.set('port', process.env.PORT || 8080);
app.set('host', process.env.HOST || '0.0.0.0');
server.listen(app.get('port'), app.get('host'), () => {
console.log("Express server listening IP: " + app.get('host'));
});
io.on('connection', socket => {
socket.on('sayHi', data => {
console.log(data.message);
});
});
这是客户端:
const socket = io.connect('https://myPublicIP:8080');
socket.emit('sayHi', { message: 'Hello world' });
发生该错误是因为您使用HTTPS运行SocketIO服务器。
因此,我们有两种方法可以解决此问题:
require('https')
更改为require('http')
按照以下示例源代码在createServer时导入您的证书SSL文件
const privateKey = fs.readFileSync(process.env.PRIVATE_KEY, 'utf8') const certificate = fs.readFileSync(process.env.CERTIFICATE, 'utf8') const credentials = { key: privateKey, cert: certificate, passphrase: process.env.PASSPHRASE } var server = require('https').createServer(credentials, app);
希望这可以帮到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.