2017-11-17 16 views
1

を使ってWebSocketをしてクッキーを送信する、私はWebSocketの接続でクッキーに沿って通過することができます方法はありますか?私は現在、竜巻を使ってWebSocketをに接続していトルネード

import logging 

import tornado.httpclient 
import tornado.gen 
import tornado.options 
import tornado.web 
import tornado.websocket 

@tornado.gen.coroutine 
def connect_websocket(): 

    url = tornado.options.options.ws_host 

    try: 
     ws_connection = yield tornado.websocket.websocket_connect(url, connect_timeout=5) 
     logging.info("Connection established (%s), waiting for output...", url) 
    except Exception as conn_err: 
     logging.error("Error connecting to %s", conn_err) 
     return 

    while True: 
     output = yield ws_connection.read_message() 
     logging.info(output) 


if __name__ == '__main__': 
    tornado.options.define(name="ws_host", type=str, help="Websocket host address.") 
    tornado.options.parse_command_line() 

    tornado.ioloop.IOLoop.instance().run_sync(connect_websocket) 

ありがとうございます!

答えて

1

websocket_connect(url)urlパラメータはプレーンなURL文字列ですが、tornado.httpclient.HTTPRequestオブジェクトであってもかまいません。けれども、それが文書化されていないが、あなたはsource codeでこれを見ることができます。

それで、あなたはHTTPRequestのインスタンスを作成することができますし、そこにCookieヘッダを設定し、結局、クッキーは単にヘッダです。

例:

from tornado import httpclient 

# create an instace of HTTPRequest with the given url 
request = httpclient.HTTPRequest(url, headers={'Cookie': 'name=value'}) 

# connect to ws using the request object 
ws_connection = yield tornado.websocket.websocket_connect(request) 
関連する問題