Skip to content

Instantly share code, notes, and snippets.

@viniciusalonso
Created July 5, 2016 02:52
Show Gist options
  • Save viniciusalonso/492de51e88b8a2b08aef23b687df85a5 to your computer and use it in GitHub Desktop.
Save viniciusalonso/492de51e88b8a2b08aef23b687df85a5 to your computer and use it in GitHub Desktop.
# Método do controller
def update_state
@order = Order.includes(:table).find(params[:id])
@order.update({state: params[:state]})
if @order.ready? or @order.being_prepared?
# Faz uma publicação no canal waiter
# Dentro do canal tem uma "subseção" chamada update_waiter_screen
WebsocketRails[:waiter].trigger(:update_waiter_screen, @order.to_json(include: :table))
end
head :ok
end
# Instancia que faz a conexão com backend
Eichef.Dispatcher = new WebSocketRails('http://localhost:3000/websocket');
# Fazendo a inscrição em um canal
var channel = Eichef.Dispatcher.subscribe('waiter');
controller.set('channel', channel);
# esperando uma publicação em update_waiter_screen
controller.channel.bind('update_waiter_screen',function(data){
# Faz algo que você queira quando o rails publicar aqui
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment