iDennis
@iDennis

Как сделать http запрос к конкретному клиенту?

К примеру 2 человека зашли на один сайт, один человек отправил http запрос к серверу, сервер обработал и серверу нужно отправить http запрос второму человеку? Как это сделать? Через сокеты?
  • Вопрос задан
  • 409 просмотров
Пригласить эксперта
Ответы на вопрос 6
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Сервер не может отправить запрос клиенту, это даже из их названий следует.
Если вам нужно передать клиенту какую-то информацию, то для этого используются либо периодические ajax-запросы, либо long-polling, либо веб-сокеты.
Ответ написан
Комментировать
Ответ написан
Комментировать
@LiguidCool
Эээээ, что?
Ну в принципе то конечно через сокеты, но по факту почитайте как работает TCP протокол. Отправить ответ можно пока поднят коннект. Реализация зависит от языка, например в PHP эта задача целиком на Apache.
Ответ написан
Комментировать
@IvanOne
Ответ написан
Комментировать
@sitev_ru
sitev.ru - мой блог ...
HTTP-запрос работает так:

1. Подключается к серверу
2. Отправляется запрос
3. Запрос обрабатывается сервером
4. Сервер отправляет ответ клиенту
5. Разрыв соединения

А раз происходит разрыв соединения, то 2-ой клиент должен, например, по таймеру, используя AJAX, постоянно запрашивать "пришло мне что-нить?".

Если такое решение не подходит - смотрите в сторону WebSocket.
Ответ написан
Комментировать
@Fredcapit
Ознакомьтесь с решение SignalR. Там как раз реализован разный тип взаимодействия клиент-сервер в зависимости от доступности того или иного метода установления соединения. Также относительно легко можно управлять подключенными клиентами, оповещать других об изменении их статуса, автоматическое переподключение при потере соединения и т.п.
На его базе очень легко реализовать веб-чат (по крайней мере на C#).
Очень интересна технология WebRTC. Это когда есть возможность устанавливать соединения между клиентами напрямую, например для реализации видео-чата. Правда в этих целях необходимы дополнительные элементы, которые позволят двум клиентам "найти" друг друга в сети.
Теоретически пакеты в сети изначально адресуются по mac адресам, но развивающиеся технологии позволяют управлять адресацией (я имею ввиду различные устройства маршрутизации свичи, хабы...) на основе и IP-адреса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы