Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2015, 12:00   #1
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию c++ WebSocket,Apache, JS

Добрый день!
Подскажите, пожалуйста можно ли такое сделать.
Есть.
1. Сервер на c++, который слушает websocket на 9002 порту.
Есть apache 2.2(2.4).
2. Через apache происходит авторизация пользователя.
Нужно.
Ограничить доступ к websocket-у напрямую. Чтобы доступ шел через apache.
То есть:
Чтобы в JS сокет открывался на 9001 порту, например. И доступ к сокету возможен был только после авторизации на apache.
Искал в интернете. Нашел, что можно проксировать socket, но браузер пишет, что не может подключится к websocket-у.
R_G вне форума Ответить с цитированием
Старый 11.11.2015, 12:18   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а как вы apache то настроили?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.11.2015, 14:29   #3
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию

Пока по умолчанию все. Слушается 80 порт.
Пробовал:
Код:
ProxyPass "/ws_test/"  "ws://<ip-сервера>:9002/"
Ошибка на стороне JS - пишет не могу подключится к сокету.
Читал что можно на ngix сделать wstunnel, но нужен именно апач потому что:
- apache на винде крутится.
- на нем работает модуль авторизации. Модуль, который получает win-логин, авторизованного в домене пользователя и передает его в php, где (php-скрипт) и происходит проверка доступа к ресурсу.
И поэтому у меня алгоритм такой сложился:
идем на ресурс->проверка php->открываем websocket->js работает с сервером.
НО. Как защитить websocket на сервере?) Вот вопрос какой. Фактически сейчас к данному сокету может подключится не только браузер.
R_G вне форума Ответить с цитированием
Старый 11.11.2015, 14:38   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

apache на винде? мсье знает толк...
смотрите на расширение для websocket( mod_proxy_wstunnel например нагуглил) а не просто прокси.
ибо websocket это расширенный http, и там иначе немного все.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.11.2015, 14:50   #5
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию

Находил это расширение.
https://httpd.apache.org/docs/2.4/mo..._wstunnel.html
Но не работает.
Цитата:
Сообщение от R_G Посмотреть сообщение
Пробовал:
Код:
ProxyPass "/ws_test/"  "ws://<ip-сервера>:9002/"
Ошибка на стороне JS - пишет не могу подключится к сокету.
R_G вне форума Ответить с цитированием
Старый 11.11.2015, 14:53   #6
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Апач это веб сервер, он может крутить веб-сокеты, но вот транслировать пакеты ...
come-on вне форума Ответить с цитированием
Старый 11.11.2015, 14:54   #7
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
ProxyPass "/ws_test/" "ws://<ip-сервера>:9002/"

Ошибка на стороне JS - пишет не могу подключится к сокету.
вы же хотите через апач, а пробуете напрямую, определитесь как вам надо
come-on вне форума Ответить с цитированием
Старый 11.11.2015, 15:03   #8
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию

Цитата:
Апач это веб сервер, он может крутить веб-сокеты, но вот транслировать пакеты ...
То есть через apache нельзя сделать?
Цитата:
вы же хотите через апач, а пробуете напрямую, определитесь как вам надо
Проще говоря я хочу чтобы websocket на 9002 порту был закрыт для тех кто не в белом списке пользователей. Если напрямую делать, то работает конечно. Но тогда ничто не мешает подключится к данному сокету анонимно..
R_G вне форума Ответить с цитированием
Старый 11.11.2015, 15:47   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я так и не увидел ваши конфиги.
а то тут пишете что хотите одно, потом пробуете иное.
давайте полную инфу уж, куда конектитесь, какой конфиг при этом, какой результат.
(и да не забывайте перезапуск апача при смене настроек)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.11.2015, 16:12   #10
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию

Вот конфиг.
Вложения
Тип файла: txt httpd.txt (19.8 Кб, 129 просмотров)
R_G вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консольный сервер + WebSocket Ferrun Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 7 02.07.2014 13:14
Websocket на PHP (Ошибка подключения) Gregor PHP 0 19.03.2013 22:03
Websocket & php Abuhamed PHP 2 18.08.2012 21:38
websocket сервер на qt aaveter Qt и кроссплатформенное программирование С/С++ 0 27.10.2011 23:56
websocket на free hosting sealmu ASP.NET 1 02.04.2011 15:33