README.mdの罠
git pushできなくてハマった。「README.md」を今回作ってしまったので、一度pullしないといけないようだ
git pull origin master
このあとだとOKだった。
Tornadoメモ
RequestHandlerのfinishメソッド接続を閉じる
Tornadoのon_open
https://groups.google.com/group/python-tornado/browse_thread/thread/af89195f90251d54・88ページ(Introduction To Tornado)
class EchoHandler(tornado.websocket.WebSocketHandler): def on_open(self): self.write_message('connected!') def on_message(self, message): self.write_message(message)
「on_open」と「open」があるけど、実際は「open」があるが「on_open」はないみたい。
このsockjs-tornadoにはフェイクでつけてる。一貫性のためらしい。
https://github.com/MrJoes/sockjs-tornado/blob/master/examples/test/test.py
JSでは、onopenとonmessageのアンダースコアがないメソッド名。
Introduction To Tornado著者に問い合わせてみる
http://www.doryexmachina.com/
Tornadoの簡単なWebSockeの例
例::: Shadow Logs ::Izhar Firdaus氏がサンプル公開している
準備
・8888ポートでつなぐよ。
・jQueryは必須。
JS自体は「mini.js」にし、
↓htmlにはこのように書いた。
・mini.html
<html> <head> <meta charset="utf-8"> <title>enchant</title> <script type="text/javascript" src="jquery-1.7.2.min.js"></script> <script type="text/javascript" src="mini.js"></script> </head> <body> </body> </html>
JavaScript上にはonmessage関数があるのに、Pythonコード上のClientSocketクラスにon_messageメソッドとかがないな。
Pythonコードのdataは、Ajaxで行なっている"data"ではないようだ。
・注意
Windows版Safari Version 5.1.7(7354.57.2)、Mac版Safari Version 5.1.6 (7534.56.5)
だと以下のエラーが出た。
Unexpected response code: 426
Windows版Chrome19.0.1084.46なら動いた
Mac版ChromeVersion 19.0.1084.46は動いたが、
「XMLHttpRequest cannot load http://localhost:8888/push?x=1&y=3. Origin null is not allowed by Access-Control-Allow-Origin.」
って変なエラー。ローカルにアクセスしてるらしい。
とりあえず、Izhar Firdaus氏のサンプルをベースに自分なりにいじったのを
https://github.com/shinriyo/websocket_mini_tornado
においた。
■使い方
1. mini.htmlを普通に開く
2. 別のブラウザとかでmini.html開く
以下のアドレスにアクセスした時にdataのパラメータの値がつまれる。
http://localhost:8888/push?data=somedatahere
3.「1.」で開いたブラウザでボタン押す
JSの↓の部分が出現した。
$('body').append('<div>' + event.data + '</div>');