Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Django Channels
Aplicações real time com Django
Quem sou eu?
Paula Grangeiro
Bacharel em Sistemas de Informação
Desenvolvedora de Software Sênior
PyLadies e Django Girls
...
Aplicações Real
Time
Como funciona a internet
➔ A comunicação é estabelecida
entre um cliente e um servidor
◆ Cliente requisita (request)
◆ Ser...
Aplicações Real Time
➔ O cliente necessita de uma
resposta do servidor em “tempo
real”.
➔ O cliente precisa se atualizar
c...
WebSockets
➔ Protocolo HTML5 baseado no TCP
➔ Conexões assíncronas bidirecionais
➔ Permite conexões não criptografadas e c...
HTTP vs. WebSocket
Channels
Django Views
Django foi construído em
cima do conceito de
requisições e respostas da
web HTTP, com requisições
síncronas q...
Django Channels
➔ Adiciona ao Django suporte a
WebSockets de uma maneira similar
às views HTTP
➔ Funciona essencialmente c...
Instalação
Caso de Teste - Aplicação de Chat Online
Instalação e Configuração
➔ pip install channels
➔ Caso use Redis
◆ pip install asgi_redis
➔ No settings.py
◆ “channels” i...
Configurando ASGI
O arquivo asgi.py deve substituir o
wsgi.py criado automaticamente pelo
Django no momento de criação do ...
Levantando o server
➔ daphne chat.asgi:channel_layer --port 8888
➔ python manage.py runworker
Implementação
-
Backend
Arquivo de Rota
O arquivo routing.py equivale ao urls.py,
nele são descritos cada channel que a
aplicação suporta e seus e...
Implementando
Consumers
Os consumers são
equivalentes às views.
Eles ouvem um channel em
específico e são
responsáveis por...
Implementando Consumers
Implementação
-
Frontend
Conexão WebSocket
1. Criamos a conexão via
WebSocket.
2. Pra cada submit do form, a
mensagem é enviada via
WebSocket.
3. P...
Mas isso Funciona?
Referência
https://blog.heroku.com/in_deep_with_django_channels_the_future_of_real_time_a
pps_in_django
https://udgwebdev....
Obrigada!
@paulagrangeiro
fb.me/paula.grangeiro
contato@paulagrangeiro.com.br
blog.paulagrangeiro.com.br
Upcoming SlideShare
Loading in …5
×

Django Channels - Aplicações real time com Django

835 views

Published on

Já ouviu falar de Channels? Não? Nesta talk vamos destrinchar um pouco mais dessa feature que permite requisições assíncronas no Django e que é perfeita para o desenvolvimento de aplicações real time.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Django Channels - Aplicações real time com Django

  1. 1. Django Channels Aplicações real time com Django
  2. 2. Quem sou eu? Paula Grangeiro Bacharel em Sistemas de Informação Desenvolvedora de Software Sênior PyLadies e Django Girls Colecionadora de gatos
  3. 3. Aplicações Real Time
  4. 4. Como funciona a internet ➔ A comunicação é estabelecida entre um cliente e um servidor ◆ Cliente requisita (request) ◆ Servidor responde (response) ➔ Requisições/Respostas síncronas ➔ Possui ciclo de vida
  5. 5. Aplicações Real Time ➔ O cliente necessita de uma resposta do servidor em “tempo real”. ➔ O cliente precisa se atualizar caso alguma informação mude no servidor. ➔ O cliente precisa manter a comunicação aberta com o servidor indefinidamente, para receber/enviar novos dados.
  6. 6. WebSockets ➔ Protocolo HTML5 baseado no TCP ➔ Conexões assíncronas bidirecionais ➔ Permite conexões não criptografadas e criptografadas ◆ ws: e wss: equivalentes à http: e https: ➔ Possui baixa latência ➔ Suportado em: ◆ Internet Explorer 10+ ◆ Mozilla Firefox 4+ ◆ Safari 5+ ◆ Google Chrome 4+ ◆ Opera 11+
  7. 7. HTTP vs. WebSocket
  8. 8. Channels
  9. 9. Django Views Django foi construído em cima do conceito de requisições e respostas da web HTTP, com requisições síncronas que possuem um ciclo de vida.
  10. 10. Django Channels ➔ Adiciona ao Django suporte a WebSockets de uma maneira similar às views HTTP ➔ Funciona essencialmente como um task manager ◆ Mensagens que chegam são alocadas em uma fila ◆ A fila pode ser consumida por N consumers
  11. 11. Instalação
  12. 12. Caso de Teste - Aplicação de Chat Online
  13. 13. Instalação e Configuração ➔ pip install channels ➔ Caso use Redis ◆ pip install asgi_redis ➔ No settings.py ◆ “channels” in INSTALLED_APPS ◆ Adicionar Redis no CHANNEL_LAYERS
  14. 14. Configurando ASGI O arquivo asgi.py deve substituir o wsgi.py criado automaticamente pelo Django no momento de criação do projeto.
  15. 15. Levantando o server ➔ daphne chat.asgi:channel_layer --port 8888 ➔ python manage.py runworker
  16. 16. Implementação - Backend
  17. 17. Arquivo de Rota O arquivo routing.py equivale ao urls.py, nele são descritos cada channel que a aplicação suporta e seus equivalentes consumers.
  18. 18. Implementando Consumers Os consumers são equivalentes às views. Eles ouvem um channel em específico e são responsáveis por tratar as mensagens alocadas nele.
  19. 19. Implementando Consumers
  20. 20. Implementação - Frontend
  21. 21. Conexão WebSocket 1. Criamos a conexão via WebSocket. 2. Pra cada submit do form, a mensagem é enviada via WebSocket. 3. Para cada nova mensagem publicada, os clientes que estão conectados no mesmo WebSocket são atualizados.
  22. 22. Mas isso Funciona?
  23. 23. Referência https://blog.heroku.com/in_deep_with_django_channels_the_future_of_real_time_a pps_in_django https://udgwebdev.com/node-js-para-leigos-explorando-real-time/ http://websocket.org/echo.html http://www.devmedia.com.br/uso-de-websockets-e-html5/32267 https://github.com/jacobian/channels-example https://django-channels-example.herokuapp.com/ https://www.mmobomb.com/review/league-of-angels-2
  24. 24. Obrigada! @paulagrangeiro fb.me/paula.grangeiro contato@paulagrangeiro.com.br blog.paulagrangeiro.com.br

×