![](/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.