Являются ли websockets подходящей технологией для обновления индикаторов выполнения для клиента и как ее реализовать? [закрыто]


Сценарий

Я разрабатываю своего рода облачный веб-сервис хранения данных.

Одна из особенностей заключается в том, что пользователь может инициировать перекодирование видеофайлов (чтобы их можно было транслировать на разных устройствах).

Это занимает некоторое время, и я хочу отобразить индикатор выполнения для пользователя.

Мой план состоит в том, чтобы отправить задание с помощью ajax, где оно записано в базу данных. Вызов ajax возвращает идентификатор задания в базе данных, и этот идентификатор будет использоваться в качестве канала для уведомлений.

Таким образом, когда задание отправлено, клиент подписывается на канал "job-DATABASEID" на каком-либо самостоятельном сервере websocket.

Затем работники по перекодированию периодически выбирают отложенные задания из таблицы базы данных и обрабатывают их. Во время обработки они передают свой прогресс на сервер websocket по тому же каналу, который прослушивает клиент.

Интерфейсным приложением должен быть веб-сайт с javascript и jquery. Задняя часть должна быть запрограммирован на PHP и MySQL, а также на веб-сервере apache или nginx.

Вопрос

Является ли это правильным способом использования веб-сайтов? Обычно я вижу веб-сайты, используемые в сценарии для многих уведомлений. Вот это сценарий уведомления один к одному . Существуют ли более эффективные альтернативы для такого рода одностороннего потока информации?

Также я часто вижу, что каналы для сценариев Websocket более или менее долговечны. Здесь это очень недолговечный . Было бы, наверное, разумнее создать один канал для каждого пользователя?

Что было бы хорошим сервером websocket для такого рода использования? В идеале каналы будут автоматически удалены, как только к ним больше не подключится клиент, и автоматически созданы таким же образом, поэтому мне не нужно об этом заботиться.

Author: The Surrican, 2014-08-12

1 answers

Вы обратили внимание на События, отправленные сервером, когда вы инициируете свой запрос через ajax, поэтому вы не выполняете двунаправленную связь; вы хотите, чтобы сервер отправлял вам обновления только тогда, когда они у него есть

 7
Author: Ihab Khattab, 2014-08-11 22:59:53