Flask With Server-Sent Event
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Flask With Server-Sent Event

on

  • 2,096 views

Flask With Server-Sent Event by cppgohan

Flask With Server-Sent Event by cppgohan
sztechparty 20130317

Statistics

Views

Total Views
2,096
Views on SlideShare
2,096
Embed Views
0

Actions

Likes
1
Downloads
18
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Flask With Server-Sent Event Presentation Transcript

  • 1. withServer-Sent Events @cppgohan
  • 2. Flask?
  • 3. Flask?MicroFramework again...
  • 4. Flask?MicroFramework again...Written in Python
  • 5. =
  • 6. =
  • 7. =WerkzeugWSGI utility library
  • 8. = +WerkzeugWSGI utility library
  • 9. = +WerkzeugWSGI utility library
  • 10. = +Werkzeug Jinja2WSGI utility library template engine
  • 11. DemoHello.py
  • 12. DemoHello.py
  • 13. DemoHello.py
  • 14. Demoindex.html
  • 15. Demoindex.htmlresult???
  • 16. Demoindex.htmlresult??? • terminal run: python hello.py • open http://localhost:5000
  • 17. Server-Sent Eventserver push的html5标准, 用法简易, 单次连接比polling高效些.相比websocket的双向二进制数据, Server-Sent Event只是单向, HTTP协议.(但浏览器调试工具往往没法看到服务器发来的数据, X_X) Server对Client的请求, 做stream方式的响应.
  • 18. Server-Sent Event
  • 19. Server-Sent Event 支 持 率 不 要 能 高, 暂 兼 ”玩” 时 容 只 处 理
  • 20. Demoindex.html
  • 21. Demohello.py
  • 22. Demoredis:
  • 23. Demoredis: demo:FILE_TEXT -- 每次python读出来的文本 demo:FILE_TEXT_SEQ -- 为文本版本号, 每次文本更新, 版本号+1 /sever_push响应 -- 当FILE_TEXT_SEQ增加时, 将最新的文本返回给浏览器
  • 24. Demoresult???
  • 25. Demoresult??? • terminal run: python hello.py
  • 26. Demoresult??? • terminal run: python hello.py • open http://localhost:5000
  • 27. Demoresult??? • terminal run: python hello.py • open http://localhost:5000 • block!!!
  • 28. Demoresult??? • terminal run: python hello.py • open http://localhost:5000 • block!!!solution???
  • 29. Demoresult??? • terminal run: python hello.py • open http://localhost:5000 • block!!!solution??? • async WSGI server! (eg. gunicorn + gevent, gevent)
  • 30. Demoresult??? • terminal run: python hello.py • open http://localhost:5000 • block!!!solution??? • async WSGI server! (eg.-kgunicorn-bgevent, gevent)hello:app + • terminal run: gunicorn gevent 0.0.0.0:5000
  • 31. Demoresult??? • terminal run: python hello.py • open http://localhost:5000 • block!!!solution??? • async WSGI server! (eg.-kgunicorn-bgevent, gevent)hello:app + • terminal run: gunicorn gevent 0.0.0.0:5000 • open http://localhost:5000
  • 32. Demoresult??? • terminal run: python hello.py • open http://localhost:5000 • block!!!solution??? • async WSGI server! (eg.-kgunicorn-bgevent, gevent)hello:app + • terminal run: gunicorn gevent 0.0.0.0:5000 • open http://localhost:5000 again! • open http://localhost:5000
  • 33. More DemoServer下发代码示例
  • 34. More DemoServer下发代码示例• start http://localhost:5000 web server• open push js script... • server excute js script... • browser • ...
  • 35. More Usage• 网站动态更新• 区分客户端推送• 微博墙实现• webgame服务器推送• 浏览器插件
  • 36. Resources• http://www.python.org/dev/peps/pep-0333/• http://werkzeug.pocoo.org/• http://jinja.pocoo.org/• http://flask.pocoo.org/• http://www.gevent.org/• http://gunicorn.org/• http://dev.w3.org/html5/eventsource/• http://www.html5rocks.com/en/tutorials/eventsource/basics/• http://www.w3schools.com/html/html5_serversentevents.asp
  • 37. END; 2013, 分享不止!