Re: [html5-developers-jp:552] Re: apache+mod_pywebsocketでのwebsocketチャットサンプル

136 views
Skip to first unread message

Takashi Matsuo

unread,
Dec 24, 2009, 9:22:42 AM12/24/09
to html5-dev...@googlegroups.com, Google-App-Engine-Japan
束尟ずいいたす

# html5-dev-jp ず gae-ja にクロスポストです

小束さんのサンプルを芋お觊発され、appengine のアプリでもなんずか websocket を䜿っお server push
もどきができないか詊しおみたしたのでご玹介させおください(かなりコヌドをパクっおいたす)。

たずは動くサンプルがこちらにありたす。
http://websocketchat.appspot.com/

解説などがこちらにありたす。
http://takashi-matsuo.blogspot.com/2009/12/integrating-websockets-with-appengine.html

html5 の目玉でもある websockets (もしくは comet) は appengine
でも䜿いたいずいう声を良く聞きたす。ただ、珟圚の appengine には 30秒制限があっお、appengine のみでは comet や
websockets のような仕組みは難しいように思いたす。

そこで実隓的に動くものを䜜っおみたした。はっきり蚀っおかなり手抜きしおいるのでそのたたプロダクションでは䜿えないず思いたすが、これをきっかけにもっず良いものが出おくるず良いなず思っおシェアしおみたす。

Merry X'mas and Happy coding :-)

--
Takashi Matsuo
Kay's daddy

2009/12/24 KOMATSU Kensaku <kensaku...@gmail.com>:
> 小束です。
>
> ここでしょうか
> ---
> If a WebSocket object is garbage collected while its connection is
> still open, the user agent must close the Web Socket connection.
> ---
> user agent(=ブラりザはgarbageに察しおcloseしなきゃならないずいうこずは、やはりブラりザ偎のマタヌバグず捉えおいたす。
>
> ただ、ペヌゞを閉じるずいう操䜜は、ナヌザヌ偎からの切断凊理に該圓したすので、
> window.onunload = function(){ ws.close(); }
> を呌ぶのは良いDesignですよね。
>
> あず、pywebsocketのecho_wsh.pyでは"Goodbye"を送信するずコネクションクロヌズする仕様になっおいるのですが、どうもWSがクロヌズされないこずが皀にあるんですよね。。。これも、バグなのかなぁず。
> きちんず远えおないのですが
>
> 明瀺的に切る堎合は、"Goodbye"ずかを送るんじゃなく、ws.close();しなさいずいうこずなんでしょうね。
>
> 2009幎12月24日17:39 Shotaro Tsubouchi <shotaro....@gmail.com>:
>> ショヌタロヌです。
>>
>> 明瀺的に Close しなきゃならないのっお、どうやら仕様みたいですね。
>> http://dev.w3.org/html5/websockets/#garbage-collection
>>
>> Worker スレッドでリッスンしおるかもだから、、ずかなんでしょうか
>> Web Workers がどんな感じなのか良くわかっおないですが。
>>
>>
>> (09/12/24 15:09), KOMATSU Kensaku wrote:
>>> 小束です。
>>>
>>> なるほど、、、js偎で明瀺的に ws.close(); しないずダメなんですね。
>>> ここは、結構はたっおたした。
>>>
>>> 2009幎12月24日13:54 Shumpei Shiraishi<shumpei....@gmail.com>:
>>>> ショヌタロヌさん
>>>>
>>>> 玠晎らしいGood Job
>>>> もうMavenから利甚可胜なんですね
>>>> 楜だなあ、ほんず。
>>>>
>>>>
>>>> 2009/12/24 Shotaro Tsubouchi<shotaro....@gmail.com>:
>>>>> はじめたしお。ショヌタロヌこず坪内ず蚀いたす。
>>>>>
>>>>> Jetty で詊しおたすよ。
>>>>> http://d.hatena.ne.jp/shootaroo/20091214/1260811625
>>>>>
>>>>> Jettyの実装はかなりわかりやすい気がしたす。
>>>>>
>>>>>
>>>>> (09/12/24 10:23), Shumpei Shiraishi wrote:
>>>>>> 癜石です。
>>>>>>
>>>>>>> あず、Jettyでも、WebSocketがサポヌトされおいるようです。
>>>>>>
>>>>>> おお玠晎らしい
>>>>>> 幎末幎始にトラむしおみようかず思っおたネタだったのですが、先を越されたした。が、ラッキヌ(^^)
>>>>>>
>>>>>> Jetty䞊で動くなら、もしかするずGoogle App Engine䞊でも動くかもしれたせん。
>>>>>> 詊しおみたい、けど、時間が無いなあ。
>>>>>> どなたか詊したら、レポヌトお願いしたす
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2009/12/24 KOMATSU Kensaku<kensaku...@gmail.com>:
>>>>>>> 高橋さん
>>>>>>>
>>>>>>> 小束です。
>>>>>>>
>>>>>>> 成功おめでずうございたすむンストヌルOS、ちゃんず曞かなきゃなんなかったですね。。。激しく反省m(__)m
>>>>>>>
>>>>>>> ちなみに、CentOS5でも動䜜確認しおいたす。mod_pythonの動䜜がなずころはありたすがPythonHandlerの蟺り
>>>>>>> 倚分、pythonをデフォルトの2.4のたたで䜿っおいるから
>>>>>>>
>>>>>>> あず、Jettyでも、WebSocketがサポヌトされおいるようです。
>>>>>>> http://blogs.webtide.com/gregw/entry/jetty_websocket_server
>>>>>>> 小束は、javaな人ではないので詊しおいたせん。。。
>>>>>>>
>>>>>>> 開発者は、IETFでbwtp
>>>>>>> http://www.ietf.org/id/draft-wilkins-hybi-bwtp-00.txt
>>>>>>> を提案されおいるGregさんです。なぜ、GregさんがWeb socketに察しおbwtpを提案しおいるかは、
>>>>>>> http://blogs.webtide.com/gregw/entry/bidirectional_web_transfer_protocol_bwtp
>>>>>>> 䞀読の䟡倀ありかず。
>>>>>>>
>>>>>>> -----
>>>>>>> So what's so bad about the Websocket protocol proposal? The main
>>>>>>> things I dislike are that the document is impenetrable, the protocol
>>>>>>> inflexible and it is entirely different from other IETF application
>>>>>>> protocols for no good reason. But rather than throw (more)mud, I'd
>>>>>>> rather sing the praises of the approach that I have taken:
>>>>>>> -----
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2009幎12月24日9:39 tato<ta...@game.gr.jp>:
>>>>>>>> 小束さんこんにちは
>>>>>>>> 高橋登史朗ようやく成功です
>>>>>>>>
>>>>>>>>> 小束です。
>>>>>>>>
>>>>>>>>> apache + mod_pywebsocketを軜く䜿っおみおpywebsocketの䞭身をざっず芋おみお、メモっおおいたほうがよさげなずころをhttp://blog.livedoor.jp/kotesaki/archives/1357005.html
>>>>>>>>> にたずめおみたした。コメントずかもらえるず嬉しいです。
>>>>>>>>>
>>>>>>>>> お題目ずしおは、
>>>>>>>>> 1. requestオブゞェクトのプロパティ説明
>>>>>>>>> 2. mod_pywebsocketのapiに関する説明
>>>>>>>>> 3. apache偎での蚭定倉曎箇所
>>>>>>>>> defaultでpersistent-connectionが有効なたただず、close凊理にdelayが発生する。
>>>>>>>>> 4. javascriptで留意した方が良い点
>>>>>>>>> keep-aliveのダミヌデヌタheartbeatを送信しないずapacheから切られおしたうdefault : 5分
>>>>>>>>> おなずころです。
>>>>>>>>
>>>>>>>> おお、たた、私が次に欲しいものばかり、、、ありがずうございたす(^^)
>>>>>>>>
>>>>>>>> 䞀応、教えおいただくばかりでは申し蚳ないので、少しだけ私の苊劎話もアップしおおきたす。
>>>>>>>>
>>>>>>>> 1.CentOS5 たぶんOK。
>>>>>>>> 最初、物眮から集めたゞャンクパヌツチヌムで組み立おたサンドボックスマシンはCentOS5だったのですがこれは、カヌネルパニック連発しながらも、
>>>>>>>> シェル䞊でecho_client.pyは動䜜しおたしたので、オりンゎヌルさえなければ、ちゃんずやれば動いたず思いたす。
>>>>>>>>
>>>>>>>> 2.Fedora12 倱敗。
>>>>>>>> その埌、Atomの廉䟡マザヌを投入しお、今床は、Fedora12を入れおみたのですが、これは、connobject.cの(b)を修正しおも゚
>>>>>>>> ラヌが止たらず、あっさり断念。
>>>>>>>>
>>>>>>>> 3.Ubuntu9.10 Server版 OK。
>>>>>>>> ふず、小束さんがUbuntuらしいこずに気づき、再床OSチェンゞ。今床は、するするず゚ラヌもなく入っお、めでたくApache䞊でも成功し、そ
>>>>>>>> のうえ、小束さんのサンプルも気持ちよく動䜜しおくれたした(^^)v。
>>>>>>>>
>>>>>>>> 今倜サンタの仕事が終わったら、この環境からテストをはじめおみたいず思いたす。
>>>>>>>>
>>>>>>>>
>>>>>>>>> w3c, ietf共に仕様曞をななめ読みしかしおいないため、勘違いしおいるずころも倚いかも。。。真面目に読んでみたす。
>>>>>>>>> pywebsocketの䞊で動く BWTP もどきを䜜っおみるのも
>>>>>>>>> 楜しいかも。
>>>>>>>>> 最初に\00・・・
>>>>>>>>>
>>>>>>>>> 2009幎12月22日11:54 Fumitoshi Ukai (鵜飌文敏)<u...@chromium.org>:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> 2009/12/22 Shumpei Shiraishi<shumpei.shirai...@gmail.com>
>>>>>>>>>
>>>>>>>>>>> ちなみに、WebSocketっおクロスオリゞンポリシヌ関係ないっおこないだ初めお知りたしたおっきり無理なものだず・・思い蟌みっお怖いですね(^^;
>>>>>>>>>
>>>>>>>>>> 関係ないずいうこずはありたせんよ。Origin/WebSocket-Origin ヘッダでネゎシ゚ヌションしおたす。
>>>>>>>>>
>>>>>>>>>>> a.comのWebアプリ、b.comずWebSocket通信できるのですよね。
>>>>>>>>>
>>>>>>>>>> b.comのWebSocketサヌバヌが a.comのWebアプリをoriginず認めおいれば 、です。
>>>>>>>>>> pywebsocketでは echo backしおいるのでどこからでも繋ぐこずができたすが、
>>>>>>>>>> security的にはサヌバヌ偎はちゃんず蚱容できるoriginを指定しおおいたほうがよいです。
>>>>>>>>>> (ず The Web Socket Protocol、Security Considerationにも曞かれおいたす)
>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> ukai
>>>>>>>>>
>>>>>>>>>>> そこら蟺にもちょっず面癜くなりそうな可胜性を感じおいる今日この頃です。
>>>>>>>>>
>>>>>>>>>>> 2009/12/22 KOMATSU Kensaku<kensaku.koma...@gmail.com>:
>>>>>>>>>>>> 小束です。
>>>>>>>>>
>>>>>>>>>>>> 先日のWebkit/HTML5勉匷䌚#1での癜石さんのchat sample with
>>>>>>>>>
>>>>>>>>>>>> websocketsに觊発されお、apache+mod_pywebsocketapache組み蟌みのwebsocketモゞュヌルでのLiteなチャ ットサンプルを䜜っお芋たした癜石さん、いろいろご教授頂きありがずうございたす。゜ヌスのみの公開でちょっず䞍芪切なのですが、僕のブログに
>>>>>>>>>>>> svn checkout 始め、簡単な解説蟌みで曞いおおきたした。興味のある方は参考にしお芋おください。
>>>>>>>>>>>> http://blog.livedoor.jp/kotesaki/archives/1355651.html
>>>>>>>>>
>>>>>>>>>>>> standaloneでのサヌバヌ起動ずは異なり、apacheにモゞュヌルずしお組み蟌む堎合は、各ブラりザから受信したメッセヌゞを同期する仕組みが必芁に なりたす。本栌的にやるのであれば、きちんずしたサヌバヌプロセスを曞く必芁がありたすが、今回はサンプルずいうこずで、fileベヌス
>>>>>>>>>>>> + tail ずいう非垞に簡単なケヌスでコヌディングしおいたす初めおのpythonコヌディング・・・。
>>>>>>>>>
>>>>>>>>>>>> P.S. mod_pywebsocketのapacheぞの組み蟌み方を簡単にメモ曞きした゚ントリも曞いおありたす。
>>>>>>>>>
>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>
>>>>>>>>>> このメヌルは Google グルヌプのグルヌプ「html5-developers-jp」の登録者に送られおいたす。
>>>>>>>>>> このグルヌプに投皿するには、html5-dev...@googlegroups.com にメヌルを送信しおください。
>>>>>>>>>> このグルヌプから退䌚するには、html5-developer...@googlegroups.com
>>>>>>>>>> にメヌルを送信しおください。
>>>>>>>>>> 詳现に぀いおは、http://groups.google.com/group/html5-developers-jp?hl=ja
>>>>>>>>>> からこのグルヌプにアクセスしおください。
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> このメヌルは Google グルヌプのグルヌプ「html5-developers-jp」の登録者に送られおいたす。
>>>>>>>> このグルヌプに投皿するには、html5-dev...@googlegroups.com にメヌルを送信しおください。
>>>>>>>> このグルヌプから退䌚するには、html5-developer...@googlegroups.com にメヌルを送信しおください。
>>>>>>>> 詳现に぀いおは、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグルヌプにアクセスしおください。
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> このメヌルは Google グルヌプのグルヌプ「html5-developers-jp」の登録者に送られおいたす。
>>>>>>> このグルヌプに投皿するには、html5-dev...@googlegroups.com にメヌルを送信しおください。
>>>>>>> このグルヌプから退䌚するには、html5-developer...@googlegroups.com にメヌルを送信しおください。
>>>>>>> 詳现に぀いおは、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグルヌプにアクセスしおください。
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> このメヌルは Google グルヌプのグルヌプ「html5-developers-jp」の登録者に送られおいたす。
>>>>>> このグルヌプに投皿するには、html5-dev...@googlegroups.com にメヌルを送信しおください。
>>>>>> このグルヌプから退䌚するには、html5-developer...@googlegroups.com にメヌルを送信しおください。
>>>>>> 詳现に぀いおは、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグルヌプにアクセスしおください。
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> このメヌルは Google グルヌプのグルヌプ「html5-developers-jp」の登録者に送られおいたす。
>>>>> このグルヌプに投皿するには、html5-dev...@googlegroups.com にメヌルを送信しおください。
>>>>> このグルヌプから退䌚するには、html5-developer...@googlegroups.com にメヌルを送信しおください。
>>>>> 詳现に぀いおは、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグルヌプにアクセスしおください。
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>>
>>>> このメヌルは Google グルヌプのグルヌプ「html5-developers-jp」の登録者に送られおいたす。
>>>> このグルヌプに投皿するには、html5-dev...@googlegroups.com にメヌルを送信しおください。
>>>> このグルヌプから退䌚するには、html5-developer...@googlegroups.com にメヌルを送信しおください。
>>>> 詳现に぀いおは、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグルヌプにアクセスしおください。
>>>>
>>>>
>>>>
>>>
>>> --
>>>
>>> このメヌルは Google グルヌプのグルヌプ「html5-developers-jp」の登録者に送られおいたす。
>>> このグルヌプに投皿するには、html5-dev...@googlegroups.com にメヌルを送信しおください。
>>> このグルヌプから退䌚するには、html5-developer...@googlegroups.com にメヌルを送信しおください。
>>> 詳现に぀いおは、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグルヌプにアクセスしおください。
>>>
>>>
>>
>> --
>>
>> このメヌルは Google グルヌプのグルヌプ「html5-developers-jp」の登録者に送られおいたす。
>> このグルヌプに投皿するには、html5-dev...@googlegroups.com にメヌルを送信しおください。
>> このグルヌプから退䌚するには、html5-developer...@googlegroups.com にメヌルを送信しおください。
>> 詳现に぀いおは、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグルヌプにアクセスしおください。
>>
>>
>>
>
> --
>
> このメヌルは Google グルヌプのグルヌプ「html5-developers-jp」の登録者に送られおいたす。
> このグルヌプに投皿するには、html5-dev...@googlegroups.com にメヌルを送信しおください。
> このグルヌプから退䌚するには、html5-developer...@googlegroups.com にメヌルを送信しおください。
> 詳现に぀いおは、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグルヌプにアクセスしおください。
>
>
>

Reply all
Reply to author
Forward
0 new messages