Este documento apresenta o framework Ratchet, que permite a criação de aplicações em tempo real com PHP usando WebSockets. O Ratchet fornece uma API para lidar com conexões WebSocket e implementa os padrões Publisher/Subscriber e Remote Procedure Call usando o protocolo WAMP. O documento demonstra como construir aplicações simples como um chat em tempo real e integrações mais complexas com sistemas backend existentes.
2. Sobre o palestrante
Co-fundador e CTO da LQDI Digital
Projetos para empresas como Porto Seguro, Nestlé,
Ticket, Editora FTD, Tishman Speyer e Ambev
13 anos trabalhando com PHP
Desde a época que o PHPClasses era a onda :)
Aryel Tupinambá
5. Tempo normal vs tempo real
Uma nova
mensagem de chat
é enviada
A mensagem
aparece na lista de
mensagens
Uma notificação é
recebida
Um alerta sonoro e
uma caixa de
mensagem surgem
Um post é
atualizado pelo
editor
O conteúdo do post
é atualizado
Tempo "normal"
Ação realizada RefreshEvento... Reação...
6. Tempo normal vs tempo real
Uma nova
mensagem de chat
é enviada
A mensagem
aparece na lista de
mensagens
Uma notificação é
recebida
Um alerta sonoro e
uma caixa de
mensagem surgem
Um post é
atualizado pelo
editor
O conteúdo do post
é atualizado
Tempo real
Ação realizadaEvento... Reação...
11. WebSockets, onde roda
- Chrome, Firefox, Safari
- Internet Explorer 10+, Edge
- Internet Explorer 8 e 9 (via Flash polyfill)
- Mobile browsers (Android, iOS, Windows, etc)
18. Na prática - Chat
Código disponível em: http://github.com/DfKimera/phpconf16-ratchet/
19. Integrando aplicações existentes
Um post é
atualizado pelo
editor
O conteúdo do post
é atualizado
Tempo real
Ação realizadaEvento... Reação...
20. Integrando aplicações existentes
Um post é
atualizado pelo
editor
O conteúdo do post
é atualizado
PHP envia mensagem
via WebSocket avisando
da atualização
O usuário acessou
o post original
Salva no BD
Servidor Ratchet recebe
o aviso de atualização, e
repassa para todos os
clients conectados
JS no post conecta
no servidor Ratchet
29. Aplicações mais complexas
The Web Application
Messaging Protocol
- Suporte a múltiplas aplicações em um mesmo endpoint
- Suporte a múltiplos canais
- Implementa os patterns Publisher/Subscriber e Remote Procedure Call
31. O que mais dá pra fazer?
- Atualizações em tempo real
(posts, comentários, feed, cotações, preços, destaques…)
- Games multiplayer em tempo real
- Chats em grupo
- Transferência de arquivos
- Streaming de texto, voz e vídeo
(com WebSockets + WebRTC)
32. Gostei, quero ver mais!
Ratchet - WebSockets for PHP
Usando Laravel?