Я пытаюсь настроить свой производственный сервер для использования сообщений faye с использованием nodejs и HTTPS, но безуспешно.
Что у меня есть до сих пор:
Файл установки сервера faye + nodejs:
var https = require('https');
var faye = require('faye');
var fs = require('fs');
var options = {
key: fs.readFileSync('/etc/httpd/ssl/example.com.key'),
cert: fs.readFileSync('/etc/httpd/ssl/example.com.crt'),
ca: fs.readFileSync('/etc/httpd/ssl/ca_bundle.crt')
};
var server = https.createServer(options);
var bayeux = new faye.NodeAdapter({mount: '/faye', timeout: 60});
bayeux.attach(server);
server.listen(8000);
Помощник rails для отправки сообщений:
def broadcast(channel, &block)
message = {:channel => channel, :data => capture(&block)}
uri = URI.parse(Rails.configuration.faye_url)
Net::HTTPS.post(uri, message.to_json)
end
Функция javascript для открытия прослушивателя:
function openListener(channel, callback){
var faye_client = new Faye.Client("<%= Rails.configuration.faye_url %>");
faye_client.subscribe(channel , callback);
return faye_client;
}
Моя конфигурация URL-адреса Faye в production.rb:
config.faye_url = "https://example.com:8000/faye"
И, наконец, вызов javascript моей страницы:
fayeClient = openListener("my_channel" , function(data) {
//do something...
});
Все работало при тестировании через http на машине разработки. Но в производстве нет.
Если я укажу браузеру https://example.com:8000/faye.js, я получу правильный файл javascript.
Что может случиться?