how*_*hUR 3 https node.js express socket.io github-pages
我的代码托管在 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);
});
});
Run Code Online (Sandbox Code Playgroud)
这是客户端:
const socket = io.connect('https://myPublicIP:8080');
socket.emit('sayHi', { message: 'Hello world' });
Run Code Online (Sandbox Code Playgroud)
发生该错误是因为您使用 HTTPS 来运行 SocketIO Server。
所以我们有两种方法来解决这个问题:
require('https')
require('http')
按照此示例源代码创建服务器时导入您的证书 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);
Run Code Online (Sandbox Code Playgroud)希望这可以帮到你!
归档时间: |
|
查看次数: |
3305 次 |
最近记录: |