socket.IO kullanan bir node.js uygulamasına sahibim. Http üzerinde iyi çalışıyor, ancak https aracılığıyla sokete bağlanmaya çalışırken - hiçbir şey olmuyor. Her şey http çalışıyor söylediği gibi,Socket.IO https üzerinden iletişim kuramıyor
var secureConnection = false;
var port = 8899;
if (window.location.protocol === 'https:') {
port = 8895;
secureConnection = true;
}
var socket = io.connect('domain.org', {port: port, secure: secureConnection});
:
var fs = require('fs');
var ioHttp = require('socket.io').listen(8899, {
'flash policy port': -1
});
initSocket(ioHttp);
var ioHttps = require('socket.io').listen(8895, {
key: fs.readFileSync('/path/to/file/file.key'),
cert: fs.readFileSync('/path/to/file/file.crt'),
ca: [
fs.readFileSync('/path/to/file/sub.class1.server.ca.pem'),
fs.readFileSync('/path/to/file/ca.pem')
],
'flash policy port': -1
});
initSocket(ioHttps);
ve initSocket
fonksiyonu::
function initSocket(io) {
io.enable('browser client minification');
io.enable('browser client etag');
io.enable('browser client gzip');
io.set('transports', [
'websocket',
'htmlfile',
'flashsocket',
'jsonp-polling'
]);
io.sockets.on('connection', function (client) {
//the connnection is handled here
});
}
istemci böyle bağlamak
İşte kod bazı parçası ama https üzerinden bağlantı kuruyor bana "Bağlantı kesildi". Neyi yanlış yapıyorum?
kendini imzalamak veya sertifikaları kontrol eder ve sizi uyarır tarayıcılarda normal HTTP gibi davranmaya socket.io yapar mı? – Titan
Hey, server.key, server.crt ve ca.crt'yi nereden ediniyorsunuz? kendinden mi yapılmış? kendi kendine üretiliyorsa üretim üzerinde çalışacak mı? –
@GreenGiant Talebi dikkate alınSert ve reddet [belge] 'deki izin verilmeyen iç seçenekleri (http://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener) – user568109