我試圖通過ssl連接使用socket.io設置服務器到服務器鏈接。這是我的實例:在node.js中使用socket.io設置服務器 - 服務器SSL通信
/**
* Server
*/
var app = require('express')();
var config = require('./config');
var https = require('https');
var http = require('http');
var fs = require('fs');
var server = https.createServer({key: fs.readFileSync(config.ssl.key), cert: fs.readFileSync(config.ssl.cert), passphrase: config.ssl.passphrase}, app);
//var server = http.createServer(app);
var io = require('socket.io').listen(server);
server.listen(config.port);
app.get('/', function (req, res) {
res.send('Server');
//res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
/**
* Client
*/
var io = require('socket.io-client');
//var socket = io.connect('http://localhost', {port: 8088});
var socket = io.connect('https://localhost', {secure: true, port: 8088});
socket.on('connect', function(){
socket.on('event', function(data){});
socket.on('disconnect', function(){});
});
當沒有SSL運行時,代碼工作正常。我懷疑這可能是我的自簽名證書未被接受,但我不知道如何讓客戶接受它。
請告訴我如何: 1.接受自簽名SSL證書。 或 2.幫助我以其他方式完成這項工作。
在此先感謝。
經過一番挖掘,我發現加入:require('https')。globalAgent.options.rejectUnauthorized = false;在客戶端的「var socket」修復問題之前 –