2016-12-04 24 views
0

У меня есть индексная страница, когда пользователь входит в систему, он показывает все таблицы (кнопки таблиц) в базе данных. Табл. Может иметь заказ. Таким образом, он работает, когда пользователь нажимает на таблицу, перенаправляет на путь создания порядка и создает заказ. Или, если таблица имеет порядок, она перенаправляется на страницу показа заказов. Каждый заказ имеет table_id. И таблица показывает, занят ли он сейчас или нет, показывая другой цвет.Как обновить цвет кнопки в реальном времени?

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

Заранее спасибо

+0

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

+0

@HarrisonLucas Спасибо за ваш комментарий. Теперь Im рисует таблицы на странице tableshow, которая находится под страничным контроллером. Я думаю, что сделать канал для 'tableshow: *' и для * Я хочу, чтобы он был user_id ... возможно ли это сделать? Если бы не было, вы бы немного подумали о разработке канала tableshow? спасибо –

ответ

0

Там два способа достижения функциональности типа в реальном времени

  1. Вы можете использовать Ajax постоянно опрашивать сервер просить новую копию этой страницы примера, приведенного здесь https://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

  2. Вы можете использовать услугу, такую ​​как Pusher и Sockets, что является предпочтительным способом достижения в реальном времени. https://pusher.com/tutorials ознакомьтесь с некоторыми учебными чатами, чтобы получить лучшее понимание.

+1

Хотя этот ответ в основном верен, феникс-каркас имеет простой способ справиться с сокетами. Они называют их каналами. Если что-то о каналах не ограничивает вас, вы, вероятно, захотите придерживаться этих. –

+0

Я лично использую laravel echo, который также использует каналы, код на стороне клиента может слушать и толкать в моем приложении, но я согласен, что большинство фреймворков имеют свои собственные способы реализации в реальном времени. – prola

Смежные вопросы