websocket com php

30
Websocket com PHP

Upload: leonardo-rifeli

Post on 13-Apr-2017

323 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Websocket com PHP

Websocket com PHP

Page 2: Websocket com PHP

DICA: PEGUEM CAFÉÉÉÉÉ!

Page 3: Websocket com PHP

TÓPICOS● O que é Websocket;● Para que serve;● Sobre HTTP;● Suporte dos navegadores;● Sobre o Ratchet;● Riscos;● Exemplos e demonstrações;● Conclusão;● Dúvidas.

Page 4: Websocket com PHP

HELLO!Sou o Leonardo Rifeli!✘ Tenho 20 anos✘ Eterno estudante no mundo

tecnológico✘ Já fiz mais de 100 sites✘ Sou programador e sim, eu tomo

muito café✘ Escritor no blog

leonardorifeli.com :D

Page 5: Websocket com PHP

MAS, O QUE É WEBSOCKET?

Page 6: Websocket com PHP

DEFINIÇÃO DE WEBSOCKET

Websockets são um full-duplex, conexão persistente bi-direcional de um navegador web para um servidor. Depois que uma conexão socket é estabelecida a conexão permanece aberta até que o cliente ou servidor decida encerrar.

Com esta conexão aberta, o cliente ou servidor pode enviar uma mensagem a qualquer outro cliente conectado. Sendo assim, neste momento, uma única aplicação de servidor em execução estará ciente de todas as conexões abertas, o que lhe permite comunicar com qualquer outra conexão aberta e a qualquer momento.

Page 7: Websocket com PHP

CONEXÃO COM WEBSOCKET

Page 8: Websocket com PHP

E QUAL O USO?Perfeito! Entendi o que é; mas, para

que serve?

Page 9: Websocket com PHP

ONDE É UTILIZADO WEBSOCKET?

CHATSSim, eles são desenvolvidos com comunicação socket.

JOGOS ON-LINEAqueles games que possuem interação em tempo real dos jogadores que estão em uma respectiva fase.

ATUALIZAÇÕES REAL TIMEToda atualização que ocorre em tempo real, pode ser desenvolvida facilmente com web socket.

Exemplo de uso:Usuários editando um documento no Google Docs:

Entre várias aplicações.

Page 10: Websocket com PHP

UM POUCO SOBRE HTTP

Page 11: Websocket com PHP

E OS NAVEGADORES?

Eles já suportam conexões com socket?

Page 12: Websocket com PHP

SIM, EXCETO O OPERA!

Page 13: Websocket com PHP

PERFEITO!

Partiu usar websocket nos projetos! Espere, vá com calma, muita calma...

Page 14: Websocket com PHP

E NO SERVIDOR?Sim, os servidores podem te impedir de obter e executar uma aplicação

websocket

Page 15: Websocket com PHP

SOBRE O RATCHET

As aplicações de socket para servidor não tem acompanhado os navegadores. É aí que surgiu o Ratchet, uma ferramenta fantástica para a implementação de um servidor, por protocolo TCP. Você pode iniciar um servidor com o Ratchet I/O Component Server, tendo um código que implementa o respectivo componente e poderá gerenciar todas as conexões.Site: socketo.meProjeto: github.com/ratchetphp/Ratchet

Page 16: Websocket com PHP

FLUXO DE FUNCIONAMENTO

Page 17: Websocket com PHP

IMPLEMENTAÇÃO DO RATCHET

VAMOS CODAR! Será bem básico.✘ 1. Dependência;✘ 2. Implementação do

servidor;✘ 3. Gerenciador das

conexões;✘ 4. Script de conexão.

Page 18: Websocket com PHP

1. DEPENDÊNCIA

Page 19: Websocket com PHP

2. IMPLEMENTAÇÃO DO SERVIDOR✘ Ratchet\Server\IoServer: Cria um socket

aberto para escutar uma porta específica, para conexões de entrada. Os eventos são delegados através deste para as aplicações anexadas.

✘ Ratchet\Http\HttpServer: Implementa os métodos da interface MessageComponentInterface e gerencia as conexões.

✘ Ratchet\WebSocket\WsServer: Um adaptador para lidar com as requisições e respostas do websocket. Este é o mediador entre o servidor e o cliente, para lidar com as mensagens em tempo real, por intermédio de um navegador web.

✘ Hermes\Business\Service\SocketService: Este será nosso gerenciador de conexões, mensagens, erros e encerramentos.

Page 20: Websocket com PHP

3. GERENCIADOR DAS CONEXÕES

Page 21: Websocket com PHP

3. REQUEST PELO SOCKET

Page 22: Websocket com PHP

4. SCRIPT DE CONEXÃORepare o ws: Há um novo esquema de URL para conexões Websocket, existe também wss: para uma conexão Websocket usando para conexões HTTP seguras.

Com isso, você pode manipular mensagens para o servidor e, ele por sua vez, repassar para outras conexões.

Page 23: Websocket com PHP

MAIS INFORMAÇÕESVocê pode encontrar mais informaçòes sobre o assunto no meu blog: leonardorifeli.com

Page 24: Websocket com PHP

RISCOS

Sim, poderão haver riscos dependendo da complexidade da aplicação e de como o servidor, o gerenciador das conexões e o script, foram implementados.

Alguns riscos:✘ Falhas de segurança na comunicação de

informações privadas;✘ Canais implementados incorretamente;✘ Conexões simultâneas e queda do servidor.✘ Entre muitos que, podem variar de acordo com

a implementação.

Page 25: Websocket com PHP

ALGORITMO PARA ACESSAR O CHAT E

INTERAGIR✘ PEGUE O SEU NOTEBOOK/CELULAR/TABLET/GELADEIRA;

✘ AUMENTE O VOLUME;✘ CONECTE-SE NA REDE WIFI LOCAL;✘ ABRA SEU NAVEGADOR (NÃO USE O

OPERA MINI);✘ ACESSE O ENDEREÇO:

http://192.168.0.204/tag/chat;✘ COLOQUE SEU NOME - SELECIONE A SALA

1;✘ VOCÊ PODE ENVIAR MENSAGENS PARA

AS PESSOAS E BUZINAR PARA ELAS.

Page 26: Websocket com PHP

SHOW ME THE CODE

VAMOS AO CÓDIGO E EXEMPLOS

Page 27: Websocket com PHP

RESUMOO que vimos até agora:

● O que é Websocket;● Para que serve;● Sobre HTTP;● Suporte dos

navegadores;● Sobre o Ratchet;● Exemplo divertido;● Riscos.

Page 28: Websocket com PHP

CONCLUSÃO

Sempre que precisar de uma conexão quase em tempo real de baixa latência entre o cliente e o servidor, você terá que implementar Websocket. Isso pode envolver a reformulação do modo como você desenvolve as aplicações de servidor com um novo foco em tecnologias como filas de eventos.

Page 29: Websocket com PHP

AGRADECIMENTOS

✘ A TAG POR ACEITAR A PALESTRA E CEDER O ESPAÇO

✘ TODA A GALERA QUE AJUDOU A ORGANIZAR✘ O LUIZ E FERNANDO PELO AUXÍLIO TÉCNICO✘ VOCÊS PELO INTERESSE✘ E AO LEONARDO PELA PALESTRA! :D

Page 30: Websocket com PHP

OBRIGADO!Dúvidas?Vocês podem me contactar por:✘ Twitter: @leonardorifeli✘ E-mail:

[email protected]✘ Blog: leonardorifeli.com