Я создаю сервер JSON-RPC, который принимает запросы по HTTP. Я хотел бы поддерживать двунаправленную связь (и клиент, и сервер могут отправлять запросы), конкретный вариант использования — это архитектура публикации/подписки, когда клиент отправляет subscribe(X)
запрос и получает changed(X)
запросы в (почти) режиме реального времени. Насколько я знаю, есть несколько способов реализовать это с помощью HTTP:
- долгий опрос
- Веб-сокеты
- опрос вызовов с использованием модели сеанса на основе файлов cookie
- потоковая передача (поддержание HTTP-соединения открытым)
- сочетание некоторых из вышеперечисленных
Я ищу решение, основанное на общепринятых интернет-стандартах (если это возможно), которое можно использовать в веб-браузере и с которым легко работать на стороне клиента. Пока что я предпочитаю потоковую передачу (так делают Twitter, CouchDB), но я не уверен, насколько хорошо это поддерживается в браузерах и библиотеках JSON-RPC. Кроме того, могут быть и другие способы сделать это, о которых я не знаю.
Заранее спасибо.