Пытаюсь разобраться с веб-сокетами и xhr в контексте Meteor -> Modulus. Иногда я замечал длительное время отклика, по-видимому, из-за того, что веб-сокеты возвращались к xhr, когда он не мог подключиться ... Я пытаюсь понять, почему.
Производственное приложение размещается на Modulus. SSL включен.
Что я уже сделал/проверил
- Обновите все: приложение работало в версии 1.0.2.1 (последняя), но изначально было создано в течение ~ 0,65 дня. В первую очередь я обновил стандартные пакеты приложений до пакетов метеоритной платформы и перезапустил сервер. Без изменений.
- Modulus: проверьте... Modulus не требует каких-либо явных команд для включения безопасных веб-сокетов.
- Метеор: проверьте... Начиная с Meteor 0.6.3.1 веб-сокеты включено по умолчанию.
- Размер публикации: я уверен, что мог бы быть немного более экономным в своих публикациях, но в целом они составляют около 1,4 КБ.
- Политика безопасности браузера: разумно уверен, что все в порядке (см. ниже)
Относительный новичок здесь, поэтому любые мысли или советы о том, что проверить дальше, очень ценятся.
PS. Похожие вопросы без ответов здесь и здесь
BrowserPolicy.content.disallowConnect();
//
//Allow Meteor DDP Connections
//
var rootUrl = __meteor_runtime_config__.ROOT_URL;
console.log('ROOT_URL: ' + rootUrl);
//Allow DDP connections for local development
if (rootUrl == 'http://localhost:3000/') {
BrowserPolicy.content.allowConnectOrigin(rootUrl);
BrowserPolicy.content.allowConnectOrigin(rootUrl.replace(/http(s?)/, 'ws$1'));
}
//Allow DDP connections for staging server currently using Meteor's free hosting
if (rootUrl == 'http://staging.example.com') {
BrowserPolicy.content.allowConnectOrigin('https://*.meteor.com');
BrowserPolicy.content.allowConnectOrigin('wss://*.meteor.com');
}
//Allow DDP connections for Modulus
if (rootUrl == 'https://myappname-12345.onmodulus.net') {
BrowserPolicy.content.allowConnectOrigin('https://example.com');
BrowserPolicy.content.allowConnectOrigin('wss://example.com');
}
ОБНОВЛЕНИЕ.
В целях безопасности измените ROOT_URL модуля на свой личный домен. Итак, https://myappname-12345.onmodulus.net
становится https://example.com
.