Я только что получил свой ssl-сертификат от GoDaddy, и сейчас я работаю на веб-сайте в https://example.com, а мой socketio-сервер в http://example.com:3000 (он не может получить доступ к socketio в https)
Это сообщение об ошибке, которое я получаю из своей консоли
"Не удалось загрузить источник с именем" https://example.com:3000/socket.io/socket.io.js”
Вот так я добавляю socket.io.js
<script src="<?php print BASE_URL; ?>:3000/socket.io/socket.io.js"></script>
Вот мой сервер nodejs с socket.io
var app = require('express')();
var cors = require('cors');
var https = require('https').Server(app);
var io = require('socket.io')(https);
var _ = require('lodash');
// more include files here ...
https.listen(3000, function() {
utils.logger('Listening on *: 3000', 'info');
});
io.use(function(socket, next) {
let found = _.findIndex(socketStore.connections, { 'userId': socket.request._query.userId });
if (parseInt(socket.request._query.userId) !== 0) {
if (found < 0) {
socketStore.connections.push({
userId: parseInt(socket.request._query.userId),
socket: socket
});
}
else {
socketStore.connections[found] = {
userId: parseInt(socket.request._query.userId),
socket: socket
};
}
utils.logger(`User connected from ${socket.request.connection.remoteAddress}`, 'info');
utils.logger(`User ${socket.request._query.userId} is now online!`, 'info');
next();
}
});
// Socket IO
io.on('connection', function(socket) {
// some stuffs
});
app.use(cors({ origin: '*' }));
// Routes and Endpoints
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
А вот мой apache ssl config по умолчанию
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@example.com
ServerName example.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /root/ssl/example.com.crt
SSLCertificateKeyFile /root/ssl/example.com.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
</IfModule>