Error during WebSocket handshake

Silent2000

New Member
Добрый день. Установил Web Call Server на VDS, указал ip адрес сервера. Также закинул файлы клиента рядом с сервером, но при попытке открыть клиент возникает ошибка "WebSocket connection to 'ws://92.63.98.45/' failed: Error during WebSocket handshake: Unexpected response code: 301".
Клиент вот по этому адресу http://www.cam.supergenius.ru/wcs_media_client/
 

Max

Administrator
Staff member
Добрый день.

WCS сервер по-умолчанию слушает порт 8080 для websocket и порт 8443 для websocket ssl
Пример:
Code:
ws://host:8080
wss://host:8443
Например наш демо сервер можно открыть по двум адресам:
Code:
http://wcs5-eu.flashphoner.com:9091/login.xhtml
ws://wcs5-eu.flashphoner.com:8080
и
Code:
https://wcs5-eu.flashphoner.com:8888/login.xhtml
https://wcs5-eu.flashphoner.com:8443/login.xhtml
Обратите внимание:
1. Если вы открываете https, то на WCS сервер должен быть импортирован SSL сертификат.
2. Если вы тестируете по http, то Chrome может не дать залогиниться в Dashboard, т.к. передача пароля незащищена.
3. Если вы тестируете https без сертификата в Chrome, можно предварительно открыть страницу https://host:8443 и согласиться использовать существующий самоподписный сертификат сервера в браузере. Это позволит временно тестировать без настоящих сертификатов.
 

Silent2000

New Member
2. Если вы тестируете по http, то Chrome может не дать залогиниться в Dashboard, т.к. передача пароля незащищена.
Я не захожу через dashboard, а открываю плеер напрямую пока что - http://www.cam.supergenius.ru/client2/examples/demo/streaming/player/player.html
Ошибка может быть связана с тем, что порт 8080 закрыт?
 

Max

Administrator
Staff member
Ошибка может быть связана с тем, что порт 8080 закрыт?
Да, если проверить порт 8080, то он не отвечает:
Code:
telnet www.cam.supergenius.ru 8080
Значит либо закрыт на firewall либо не слушается совсем.
Проверить процессы сервера и открытые порты можно по этим инструкциям:
https://forum.flashphoner.com/threads/troubleshooting.10768/
 

Max

Administrator
Staff member
Недавно была тема с проблемами запуска на Debian
Если сервер не запускается и порт 8080 не биндится, возможно поможет прописать hostname в /etc/host, как показано по ссылке выше.
 

Silent2000

New Member
Сделал как Вы посоветовали, техподдержка порт 8080 открыла, его видно, так же попробовал прописать hostname в /etc/host, как показано по ссылке выше. Но ошибка все также сохраняется:(
 

Max

Administrator
Staff member
Проверьте, не занят ли порт другим процессом.
Code:
netstat -nlp | grep java
По умолчанию демо-аккаунт не включен; включается в WCS_HOME/conf/wcs-manager.properties
Code:
-DstartWithDemoUser=true
Пароль администратора задается при первом открытии административной консоли: установка пароля; изменение пароля.
Чтобы сбросить пароль администратора, нужно удалить файлы базы данных в WCS_HOME/database и перезапустить сервер.
Code:
service webcallserver stop
cd /usr/local/FlashphonerWebCallServer/database
rm -rf *
service webcallserver start
 

Max

Administrator
Staff member
Если ничего не помогает, пришлите ssh доступ и пароль к dashboard на адрес logs@flashphoner.com, мы проверим конфигурацию
 

Silent2000

New Member
Если ничего не помогает, пришлите ssh доступ и пароль к dashboard на адрес logs@flashphoner.com, мы проверим конфигурацию
Хорошо, пока попробую самостоятельно предложенные варианты, спасибо за помощь
 

Silent2000

New Member
Если ничего не помогает, пришлите ssh доступ и пароль к dashboard на адрес logs@flashphoner.com, мы проверим конфигурацию
Мне еще техподдержка хостинга написала следующее:
От: Алексей Атаманов - 2017-11-28 14:45:09
Прошу прощения, не обратил внимание на тип подключения. По умолчанию веб-сервера Apache не поддерживает протокол websocket. Вам нужно использовать другой вер-сервер или установить сторонний модуль для Apache https://github.com/disconnect/apache-websocket
 

Max

Administrator
Staff member
Добрый день.

А вот по этому адресу http://cam.supergenius.ru:9091/login.xhtml dashboard открывается, только не пускает. Там же demo/demo логин и пароль?
Доступ demo/demo открыт только в том случае, когда сервер запущен с флагом -DstartWithDemoUser=true, как показано выше.

Мне еще техподдержка хостинга написала следующее
Апач сервер здесь совсем не используется.

1. Убедитесь что WCS сервер запущен. Вы должны видеть два Linux-процесса
Code:
ps aux | grep java
2. Убедитесь что стандартные TCP порты открыты и слушаются после запуска (запуск может занять 1 минуту).
Code:
netstat -nlp | grep java
Должны быть порты:
8888 - https dashboard
9091 - http dashboard
8443 - websocket https
8080 - websocket

3. Пройдите по этим портам telnet-ом и убедитесь что они открыты.
Пример:
Code:
telnet host 8888
4. Откройте Dashboard чтобы протестировать Two Way Streaming, нажмите Connect чтобы убедиться, что соединение устанавливается и переходит в ESTABLISHED
Для https
https://host:8888
wss://host:8443
Для http
http://host:9091
ws://host:8080

5. Если вы используете https и wss в браузере Google Chrome и еще не установили SSL сертификат, откройте предварительно страницу https://host:8443 чтобы разрешить браузеру использовать самоподписный сертификат, который отдает сервер по-умолчанию. Скриншоты здесь: https://flashphoner.com/docs/wcs5/w...ide-2/index.html?quick_start_installation.htm

В итоге, вы должны получить ESTABLISHED. Это значит что соединение с сервером установлено и можно двигаться дальше.
 

Attachments

Silent2000

New Member
Добрый день.


Доступ demo/demo открыт только в том случае, когда сервер запущен с флагом -DstartWithDemoUser=true, как показано выше.


Апач сервер здесь совсем не используется.

1. Убедитесь что WCS сервер запущен. Вы должны видеть два Linux-процесса
Code:
ps aux | grep java
2. Убедитесь что стандартные TCP порты открыты и слушаются после запуска (запуск может занять 1 минуту).
Code:
netstat -nlp | grep java
Должны быть порты:
8888 - https dashboard
9091 - http dashboard
8443 - websocket https
8080 - websocket

3. Пройдите по этим портам telnet-ом и убедитесь что они открыты.
Пример:
Code:
telnet host 8888
4. Откройте Dashboard чтобы протестировать Two Way Streaming, нажмите Connect чтобы убедиться, что соединение устанавливается и переходит в ESTABLISHED
Для https
https://host:8888
wss://host:8443
Для http
http://host:9091
ws://host:8080

5. Если вы используете https и wss в браузере Google Chrome и еще не установили SSL сертификат, откройте предварительно страницу https://host:8443 чтобы разрешить браузеру использовать самоподписный сертификат, который отдает сервер по-умолчанию. Скриншоты здесь: https://flashphoner.com/docs/wcs5/w...ide-2/index.html?quick_start_installation.htm

В итоге, вы должны получить ESTABLISHED. Это значит что соединение с сервером установлено и можно двигаться дальше.
1. На первом вложении - все ок.
2. Не могу выполнить команду, пишет что она не найдена
3. telnet проверил, 8080 и 9091 порты открыты
4. Все так же выдает ошибку (вложение №2)

Насчет вот этого "Проверьте, не занят ли порт другим процессом." Есть предположение, что занят, на этом хостинге в другой папке лежит конструктор мобильных приложений, который наверняка использует Java. Но точно проверить не могу, потому что не запускается команда netstat, где она может еще располагаться?
 

Attachments

Max

Administrator
Staff member
Чтобы был netstat, установите:
Code:
apt-get install net-tools
или
Code:
yum install -y net-tools
Скорее всего netstat покажет вам что порт 8080 занят другим приложением
Code:
netstat -nlp | grep 8080
В этом случае два варианта:
1. Остановить приложение, которое занимает порт.
либо
2. Поменять порт 8080 на другой в конфиге WCS_HOME/server.properties и перезапустить сервер командой
Code:
service webcallserver restart
 

Max

Administrator
Staff member
Это значит, что у вас Apache на порту 8080 и он занимает порт.
Поменяйте ему порт на 80 или поменяйте порт WCS на другой.
 

Silent2000

New Member
Перенастроил wcs на 8085, Established появляется. Но есть пара вопросов - в строке плеере отображается 8080, приходится вручную на 8085 поправлять
И второй вопрос - когда вставляю ссылку на rtsp поток, в консоль вываливаются ошибки (во вложении)
 

Attachments

Max

Administrator
Staff member
Перенастроил wcs на 8085, Established появляется. Но есть пара вопросов - в строке плеере отображается 8080, приходится вручную на 8085 поправлять
Исходники плеера в файле /usr/local/FlashphonerWebCallServer-5.0.2589/client2/examples/demo/streaming/two_way_streaming/two_way_streaming.js
Документация здесь:
https://flashphoner.com/docs/wcs5/w...de-2/index.html?two-way_streaming_web_sdk.htm
И второй вопрос - когда вставляю ссылку на rtsp поток, в консоль вываливаются ошибки (во вложении)
Это известная проблема. Проявляется в Chrome если установлен плагин Adblock. Откройте плеер по ссылке в правом верхнем углу на отдельной страние, тогда страница откроется без i-frame и должна заработать. Либо отключите adblock.
 
Top