Получить данные обновления с сервера

Как я могу получить последние или свежие данные с сервера (если на сервере произошло новое событие (например, есть 2 пользователя x, y и x, которые отправляют сообщения y, а y получают это сообщение без перезагрузки страницы ))? Я не хочу использовать setInterval, потому что он снова и снова повторяет все сообщения. Есть ли техника, которую я могу использовать для этого? Я слышал об Ajax, что эта техника должна отправлять запрос на сервер, но я хочу, чтобы когда произошло событие на сервере, и веб-страница получила его без обновления.


person Community    schedule 30.05.2015    source источник


Ответы (2)


Первый метод — это долгий опрос, при котором на сервер отправляется запрос и ожидание, пока сервер что-то отправит, например, новое сообщение. Вы должны повторно отправлять запросы на сервер каждый раз, когда вы получаете новое сообщение или время ожидания вашего запроса истекло. Этот метод использует AJAX. Пример PHP с длинным опросом — Как реализовать базовый длинный опрос?

Второй — веб-сокеты, https://en.wikipedia.org/wiki/WebSocket.

этот вопрос stackoverflow касается реализации websocket .

На socket.io есть демонстрация приложения чата.

person Hovo    schedule 30.05.2015
comment
Могу ли я получить более подробную информацию о веб-сокетах, как это работает, и, возможно, небольшой пример? я видел сообщение, но не понял, что означает var socket =new Websocket(ws://echo.websocket.org); - person ; 30.05.2015
comment
Какую серверную платформу вы используете? - person Hovo; 30.05.2015

Если вы ищете двунаправленный полнодуплексный метод, выберите WebSockets, но для простого опроса данных с сервера вы также можете использовать Server Sent Event. Добавление ссылок для обоих:

Веб-сокет:

http://html5demos.com/web-socket

http://en.wikipedia.org/wiki/WebSocket

Веб-сокеты HTML5 для приложения чата в реальном времени?

ССЭ:

http://www.html5rocks.com/en/tutorials/eventsource/basics/< /а>

Примеры:

SSE: http://demo.howopensource.com/sse/

person Avinash    schedule 30.05.2015
comment
в чем разница между sse и websocket? - person ; 30.05.2015
comment
@Aryan, если вы хотите отправлять и получать данные с сервера, вам нужно использовать WebSocket (система чата), но если вы хотите просто получать данные с сервера, используйте SSE (терминал фондовой биржи) - person Avinash; 30.05.2015
comment
Могу ли я получить более подробную информацию о веб-сокетах, как это работает, и небольшой пример? - person ; 30.05.2015
comment
@Aryan добавил ссылку для примера SSE, я добавлю для WebSocket, как только найду хороший. - person Avinash; 30.05.2015