#kurento
#kurento
Вопрос:
При запуске руководства kurento_hello_world Nodejs клиенту Kurento не удается подключиться к моему медиасерверу Kurento, работающему на AWS. Однако соответствующий учебник по Javascript для браузера отлично работает с точно такими же настройками.
Моя настройка включает медиасервер Kurento, работающий на экземпляре EC2. Это было установлено с использованием общедоступной конфигурации CloudFormation для сервера. Я правильно настроил сертификаты и убедился, что мои браузеры доверяют им.
У меня установлены и запускаются учебные пособия из отдельного экземпляра EC2. Я использую версию 6.10.0 из руководств (однако, я испытываю то же самое с 6.9.0).
Я тестирую это с помощью Chrome.
Для браузера JavaScript Hello World tutorial я обновил js/index.js файл для включения:
var args = getopts(location.search,
{
default:
{
// ws_uri: 'wss://' location.hostname ':8433/kurento',
ws_uri: 'wss://<IP_Of_KMS_On_AWS>:8433/kurento', // Kurento server on AWS
ice_servers: undefined
}
});
В результате руководство работает нормально. Я вижу как видеопоток в браузере, так и журналы в файле журнала KMS.
Для учебного пособия по узлу Hello World я обновил server.js файл для включения:
var argv = minimist(process.argv.slice(2), {
default: {
// as_uri: 'https://localhost:8443/',
as_uri: 'https://<IP_Of_Application_Server>:8443/', // Application server on EC2
// ws_uri: 'ws://localhost:8888/kurento'
ws_uri: 'wss://<IP_Of_KMS_On_AWS>:8433/kurento', // Kurento server on AWS
}
});
В руководстве по узлу основные элементы браузера работают нормально, однако приложению не удается установить успешное подключение к KMS. Я ничего не вижу в журналах KMS. Я вижу локальное видео, отображаемое в браузере, со счетчиком в элементе remote video. Аналогичный опыт у меня был с другими учебными пособиями по узлу Kurento, т. е. не выполняются вызовы к экземпляру KMS в AWS.
Я ожидаю, что на основе моей конфигурации руководство по узлу Hello World должно работать так же, как руководство по Javascript в браузере, и я должен видеть как видеопотоки в браузере, так и журналы, генерируемые на сервере Kurento.
Открытые вопросы: 1) Правильно ли выглядит моя конфигурация? 2) Я что-то упускаю в своей настройке?
Комментарии:
1. Привет, не могли бы вы, пожалуйста, проверить, правильно ли вы настроили порт KMS по умолчанию с 8888 на 8443.
2. @BuddhikaJayawardhana — Я считаю, что они настроены правильно. Если вы заметили, моя настройка работает нормально, когда я запускаю версию руководства для браузера Javascript. Вы хотите сказать, что node.js версия руководства использует разные порты в KMS?
Ответ №1:
Сегодня я столкнулся с той же проблемой. После настройки экземпляра ec2 с помощью Kurento я выполнил шаги, изложенные в руководстве по hello-world nodejs (изменен последний шаг, понятно почему):
git clone https://github.com/Kurento/kurento-tutorial-node.git
cd kurento-tutorial-node/kurento-hello-world
git checkout 6.13.0
npm install
cd static
bower install --allow-root
cd ..
npm start -- --as_uri=https://0.0.0.0:8081/ npm start -- --ws_uri=ws://0.0.0.0:8888/kurento
Я видел то же поведение в браузере: я мог видеть, что отображается локальное потоковое видео, но не удаленный поток, но, в отличие от вас, я видел этот журнал в своем терминале ec2:
/home/ubuntu/kurento-tutorial-node/kurento-hello-world/node_modules/express-session/index.js:142
if (req.session) return next();
^
TypeError: Cannot read property 'session' of undefined
at session (/home/ubuntu/kurento-tutorial-node/kurento-hello-world/node_modules/express-session/index.js:142:13)
at WebSocketServer.<anonymous> (/home/ubuntu/kurento-tutorial-node/kurento-hello-world/server.js:90:5)
at emitTwo (events.js:126:13)
at WebSocketServer.emit (events.js:214:7)
at handleUpgrade (/home/ubuntu/kurento-tutorial-node/kurento-hello-world/node_modules/ws/lib/websocket-server.js:90:18)
at WebSocketServer.completeUpgrade (/home/ubuntu/kurento-tutorial-node/kurento-hello-world/node_modules/ws/lib/websocket-server.js:329:5)
at WebSocketServer.handleUpgrade (/home/ubuntu/kurento-tutorial-node/kurento-hello-world/node_modules/ws/lib/websocket-server.js:245:10)
at Server.upgrade (/home/ubuntu/kurento-tutorial-node/kurento-hello-world/node_modules/ws/lib/websocket-server.js:89:16)
at emitThree (events.js:136:13)
at Server.emit (events.js:217:7)
Я нашел этот поток, который помог мне с решением этой проблемы. Из потока:
проблема заключалась в том, что исходный код использовал старую версию ws, которая с момента написания кода удалила ws.upgradeReq
Я проверил страницу GitHub на наличие кода server.js и увидел, что if (req.session) return next();
часть была изменена. Я удалил проект / kurento-tutorial-node из моего ec2 и выполнил все шаги из руководства hello-world nodejs, НО БЕЗ git checkout 6.13.0
, чтобы получить новую версию кода. Итак, я сделал:
git clone https://github.com/Kurento/kurento-tutorial-node.git
cd kurento-tutorial-node/kurento-hello-world
npm install
cd static
bower install --allow-root
cd ..
npm start -- --as_uri=https://0.0.0.0:8081/ npm start -- --ws_uri=ws://0.0.0.0:8888/kurento
и на этот раз это сработало