Your SlideShare is downloading. ×
0
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Twisted ロングポーリング チャット サーバ
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Twisted ロングポーリング チャット サーバ

2,377

Published on

Twisted でチャットサーバの作り方

Twisted でチャットサーバの作り方

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,377
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Twisted で ロングポーリング チャットサーバ ナカイと素敵な会話を充実する
  • 2. お前、誰よ。 <ul><li>名前 : Ian Lewis
  • 3. 所属 : BeProud
  • 4. タグ : #beproud #redbull #python #django #appengine #kay_fw
  • 5. http://www.ianlewis.org/
  • 6. http://twitter.com/IanMLewis
  • 7. http://bitbucket.org/IanLewis </li></ul>
  • 8. お前、誰よ。 もう、いいよ!
  • 9. お前、誰よ。 どうせ、皆知っているだろう
  • 10. お前、誰よ。 <ul><li>名前 : Ian Lewis
  • 11. 所属 : BeProud
  • 12. タグ : #beproud #redbull #python #django #appengine #kay_fw
  • 13. http://www.ianlewis.org/
  • 14. http://twitter.com/IanMLewis
  • 15. http://bitbucket.org/IanLewis </li></ul>
  • 16. このものと働いているよ
  • 17. お前だれよ キモい
  • 18. <ul><li>http://convore.com/
  • 19. Pownce の Leah Culver
  • 20. 旧 Mochi Media の Eric Florenzano
  • 21. オンラインチャット
  • 22. Eventlet を使う </li></ul>
  • 23.  
  • 24. Twisted Chat Server <ul><li>Twisted イベント駆動 Python フレームワーク
  • 25. ロングポーリングを使う
  • 26. ブラウザで、動かす。
  • 27. http://10.189.0.122:8000/chat/1/
  • 28. guest:guest </li></ul>
  • 29. Twisted ナカイ サーバ
  • 30. Long Polling $.ajax({ type: &quot;GET&quot;, url: &quot;http://localhost:8080/&quot;, async: true, /* If set to non-async, browser shows page as &quot;Loading..&quot;*/ cache: false, timeout:50000, /* Timeout in ms */ dataType: &quot;jsonp&quot;, jsonp: &quot;callback&quot;, success: function(data){ add_msg(data); setTimeout( 'waitForMsg()', /* Request next message */ 1000 /* ..after 1 seconds */ ); },
  • 31. Long Polling class ChatServer(resource.Resource): … def render_GET(self, request): chat_d = defer.Deferred() chat_d.addCallback(partial(chat_msg, request)) chat_d.addErrback(println, &quot;chat error&quot;) self.deferred_list.append(chat_d) return server.NOT_DONE_YET
  • 32. Message Post class ChatServer(resource.Resource): deferred_list = [] def render_POST(self, request): newdata = request.content.getvalue() data = json.loads(newdata) for i in range(len(self.deferred_list)): d = self.deferred_list.pop() d.callback(data) return 'OK'
  • 33. Long Polling def chat_msg(request, chat_msg): callback = request.args.get(&quot;callback&quot;)[0]; request.setHeader('Content-Type', 'application/javascript') request.write(&quot;%s(%s)&quot; % (callback, json.dumps(chat_msg))) request.finish()
  • 34. 質問 [email_address] @IanMLewis

×