I m develloping веб-приложение, в котором я должен показать, скажем, список задач.
Что мне нужно сделать, так это открыть пользователю задачу (то есть открыть ее в своем браузере), она удаляется из всех остальных списков пользователей или показывает, что задача выполнена, никто не может открыть задачу, которая уже открытый кем-то другим.
Кроме того, мне нужно, чтобы пользователь закрыл задачу (например, пользователь закрыл свой браузер), он снова добавляется в список других пользователей.
Как я могу это сделать, пожалуйста? WebSocket на стороне клиента? Любые другие варианты выбора?
Как управлять этим на стороне сервера?
СпасибоКак сделать блокировку конфиденциальности в реальном времени в веб-приложении?
ответ
Существует два решения (что я знаю) для вашей проблемы:
- Ajax (и Long Опрос)
Использование Ajax вы можете опрашивать сервер каждые X секунд для данных, необходимых для реализации описанного вами поведения. Это может сработать, но это не рекомендуется. прочитайте почему на this thread.
- WebSocket
Так же, как сокет вы используете на настольном приложении (отсюда и название), вы можете открыть соединение WebSocket (не HTTP один), держать его до тех пор, по мере необходимости и закрывать его только тогда, когда вы закончите с ним. Это предпочтительный способ постоянного обмена данными между клиентом и сервером. Также supported by almost every major browser out there
Существует другие технологии, такие как WebRTC и сервера-Sent Events, но учитывая ваше описание проблемы, тем не может быть то, что вы ищете.
Вне темы: И я не уверен, почему ваш вопрос был опущен, выглядит законным для меня.
- 1. Как сделать изменение div в реальном времени?
- 2. Как сделать диалог в реальном времени?
- 3. Как сделать счетчик в реальном времени?
- 4. JS: Как сделать val() в реальном времени
- 5. Как сделать блокировку в javascript
- 6. Изменения в реальном времени в реальном времени
- 7. Обновление в реальном времени в реальном времени
- 8. Как сделать размытие в реальном времени (в реальном времени) в Sprite-Kit?
- 9. oracle в реальном времени
- 10. не в реальном времени/не в реальном времени сортировка JTable
- 11. Как сделать updateGL() в реальном времени в QT
- 12. Как сделать в реальном времени Raytracing в единстве с C#
- 13. Как сделать паузу в реальном времени в Perl
- 14. Как сделать программирование в реальном времени в Rust?
- 15. Как сделать уведомление в реальном времени в codeigniter
- 16. Обновление в реальном времени
- 17. Игра в реальном времени Django в реальном времени
- 18. Нажатие в реальном времени
- 19. Получайте обновления в реальном времени в реальном времени в Kafka
- 20. Как сделать блокировку ChildWindow
- 21. Обновления в реальном времени в реальном времени с сервера
- 22. Соберите данные в реальном времени в реальном времени facebook
- 23. Обмен сообщениями в реальном времени в реальном времени
- 24. Обработка звука в реальном времени в реальном времени
- 25. Расчет в реальном времени?
- 26. Компиляция в реальном времени?
- 27. Обновление в реальном времени GWT CEll в реальном времени
- 28. Фильтрация видео в реальном времени в реальном времени
- 29. Синхронизация в реальном времени
- 30. Обновления в реальном времени
Что вы сделали до этого момента, чтобы добиться такого поведения? Какую технологию вы используете? (например, JQuery на передней панели, Spring для промежуточного программного обеспечения и т. д.). Вы можете запустить запрос ajax на «щелчок» задачи и позволить серверу удалять эту задачу из «пула задач» и запускать другой запрос ajax, когда пользователь «закрывает» задачу. На данный момент это все, что я могу вам сказать. –
Не начинайте кодирование, пока я не получу четкое представление о «выполнимости» этого вопроса, я подумал об открытии веб-узла на стороне клиента, с чем-то (правда), чтобы сохранить блокировку задачи, но не уверен в этом , Я никогда раньше этого не делал (используйте websocket), только прочитал некоторые документы, но я думаю, что, например, 100 000 веб-узлов, подключающих мой сервер в то же время, проверяя блокировки, не будут хорошей идеей. – hereForLearing
только что видели ваше редактирование, вы можете сказать, что я использую Spring (на самом деле я использую grails, но это то же самое, у Grails меньше пользователей здесь, поэтому предпочли сделать это java-вопросом), я прочитал статья об использовании ajax для этого не рекомендуется, так как ответы с сервера могут возвращаться беспорядочно. – hereForLearing