From: James Maier Date: Mon, 9 Jan 2017 03:52:02 +0000 (-0500) Subject: WebSocket: misc. from code review X-Git-Tag: v4.5.0~12^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17da654549a7c68d42ebe3b69066348c03ac4549;p=thirdparty%2Ftornado.git WebSocket: misc. from code review --- diff --git a/docs/websocket.rst b/docs/websocket.rst index 5d36d2349..b3596d4cf 100644 --- a/docs/websocket.rst +++ b/docs/websocket.rst @@ -22,7 +22,6 @@ .. automethod:: WebSocketHandler.write_message .. automethod:: WebSocketHandler.close - .. automethod:: WebSocketHandler.set_default_headers Configuration ------------- diff --git a/tornado/test/websocket_test.py b/tornado/test/websocket_test.py index 659b2f000..8de1b95af 100644 --- a/tornado/test/websocket_test.py +++ b/tornado/test/websocket_test.py @@ -1,8 +1,6 @@ from __future__ import absolute_import, division, print_function, with_statement import functools -import random -import string import traceback from tornado.concurrent import Future @@ -82,10 +80,12 @@ class HeaderHandler(TestWebSocketHandler): class HeaderEchoHandler(TestWebSocketHandler): def set_default_headers(self): + self.set_header("X-Extra-Response-Header", "Extra-Response-Value") + + def prepare(self): for k, v in self.request.headers.get_all(): if k.lower().startswith('x-test'): self.set_header(k, v) - self.set_header("X-Extra-Response-Header", "Extra-Response-Value") class NonWebSocketHandler(RequestHandler): @@ -256,16 +256,10 @@ class WebSocketTest(WebSocketBaseTestCase): # Ensure that headers can be returned in the response. # Specifically, that arbitrary headers passed through websocket_connect # can be returned. - random_str = ''.join(random.choice(string.ascii_lowercase) - for i in range(10)) ws = yield websocket_connect( HTTPRequest('ws://127.0.0.1:%d/header_echo' % self.get_http_port(), - headers={'X-Test-Hello': 'hello', - 'X-Test-Goodbye': 'goodbye', - 'X-Test-Random': random_str})) + headers={'X-Test-Hello': 'hello'})) self.assertEqual(ws.headers.get('X-Test-Hello'), 'hello') - self.assertEqual(ws.headers.get('X-Test-Goodbye'), 'goodbye') - self.assertEqual(ws.headers.get('X-Test-Random'), random_str) self.assertEqual(ws.headers.get('X-Extra-Response-Header'), 'Extra-Response-Value') yield self.close(ws) diff --git a/tornado/websocket.py b/tornado/websocket.py index 625e43039..65bbb4af1 100644 --- a/tornado/websocket.py +++ b/tornado/websocket.py @@ -66,7 +66,7 @@ class WebSocketHandler(tornado.web.RequestHandler): connections. Custom upgrade response headers can be sent by overriding - `set_default_headers`. + `set_default_headers` or `prepare`. See http://dev.w3.org/html5/websockets/ for details on the JavaScript interface. The protocol is specified at @@ -236,17 +236,6 @@ class WebSocketHandler(tornado.web.RequestHandler): """ return None - def set_default_headers(self): - """Override this to set HTTP headers at the beginning of the - WebSocket upgrade request. - - For example, this is the place to set a custom ``Server`` header. - Note that setting such headers in the normal flow of request - processing may not do what you want, since headers may be reset - during error handling. - """ - pass - def open(self, *args, **kwargs): """Invoked when a new WebSocket is opened.