Slide 1

Slide 1 text

Laravel 5.3 … e aplicações Real Time

Slide 2

Slide 2 text

/me Diego Hernandes @hernandev CTO @ Kino CODECASTER @ codecasts

Slide 3

Slide 3 text

Começando pelo começo!

Slide 4

Slide 4 text

Cenários

Slide 5

Slide 5 text

Modelo Tradicional a.k.a Polling Browser Server GET /notification GET /notification GET /notification

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Modelo Tradicional a.k.a Polling How do I do? Múltiplos eventos? Múltiplos tipos de mensagens? Múltiplos loops?

Slide 8

Slide 8 text

WebSockets

Slide 9

Slide 9 text

hum??

Slide 10

Slide 10 text

WebSockets Comunicação Bi-Direcional Diferentes eventos e níveis de acesso podem ser tratados como canais … e tudo dentro de uma conexão / socket único

Slide 11

Slide 11 text

WebSockets Browser Server GET /websocket

Slide 12

Slide 12 text

WebSockets Browser Server GET /websocket Presença Mensagens diretas (chat) Posts no Grupo da Equipe

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

WebSockets Socket.io Pusher.com SocketCluster.com PubNub.com

Slide 15

Slide 15 text

Laravel Echo

Slide 16

Slide 16 text

Entendendo Eventos...

Slide 17

Slide 17 text

Entendendo Eventos...

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Event Broadcasting

Slide 20

Slide 20 text

Event Broadcasting

Slide 21

Slide 21 text

Event Broadcasting

Slide 22

Slide 22 text

Event Broadcasting

Slide 23

Slide 23 text

Event Broadcasting Informações Adicionais (além dos atributos públicos)

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Habilitando o Suporte (1 - Service Provider)

Slide 26

Slide 26 text

Habilitando o Suporte (2 - Definindo Autenticação)

Slide 27

Slide 27 text

Habilitando o Suporte (3 - Escolhendo um Driver) Pusher.com $ composer require pusher/pusher-php-server

Slide 28

Slide 28 text

Habilitando o Suporte (3 - Escolhendo um Driver) Redis (com Socket.io) $ composer require predis/predis

Slide 29

Slide 29 text

Habilitando o Suporte (4 - Escolhendo um Driver) config/broadcasting.php

Slide 30

Slide 30 text

Habilitando o Suporte (5 - Just Have Queues!) Don’t forget the Queues!

Slide 31

Slide 31 text

Client-Side

Slide 32

Slide 32 text

$ npm install --save laravel-echo $ npm install --save pusher-js $ npm install --save socket.io-client Escutando os Eventos (1 - Dependências)

Slide 33

Slide 33 text

Escutando os Eventos (2 - Configuração)

Slide 34

Slide 34 text

Escutando os Eventos (Finalmente)

Slide 35

Slide 35 text

Escutando os Eventos (Finalmente)

Slide 36

Slide 36 text

Escutando os Eventos (Namespaces)

Slide 37

Slide 37 text

Escutando Notificações (Laravel 5.3)

Slide 38

Slide 38 text

Learning about it! https://laravel.com/docs/5.3/broadcasting https://codecasts.com.br/lesson/novidades-laravel-5-3-laravel-echo https://laracasts.com/lessons/introducing-laravel-echo

Slide 39

Slide 39 text

Perguntas