2

これまで、変数Tornadoglobal. これは理想的な方法ではないかもしれないと思います。これが私のコードのサンプルです:

class MHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous

def get(self):
    self.render('index.html')

def post(self):
    global account_age

    age = self.get_argument('age')

    account_age = [age]


class AgeHandler(tornado.websocket.WebSocketHandler):    
@tornado.web.asynchronous
@gen.engine

def open(self):
    global account_age


    print 'Your account is overdue by: ', account_age

このフレームワークで、変数を共有するためのより適切な方法は何かを知りたいです。

私は python と Tornado を数週間しかやっていないので、私の無知を許してください。

ありがとう

4

1 に答える 1

3

ええ、私はそれをしません。この単純化された例でも、POSTとWebSocketの開始の間に競合状態があることは明らかです。POSTを行った人がWebSocketを開いた人と同じであることをどのように保証できますか?

私は通常、グローバルリスト/dict内の各WebSocket接続への参照を保持します。サーバー側の出力を正しい接続に書き込むことができるある種の参照。

于 2012-12-23T23:32:42.890 に答える