]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Support websockets over https.
authorBen Darnell <ben@bendarnell.com>
Mon, 8 Nov 2010 18:51:02 +0000 (10:51 -0800)
committerBen Darnell <ben@bendarnell.com>
Mon, 8 Nov 2010 18:51:02 +0000 (10:51 -0800)
Closes #164.

tornado/websocket.py

index 7206e5da83705451ee76a58b69c3e1506b8c8c4f..8258ea2704e732ccdb21e7ba3812b24aa7e3c24a 100644 (file)
@@ -81,6 +81,7 @@ class WebSocketHandler(tornado.web.RequestHandler):
             logging.debug("Malformed WebSocket request received")
             self._abort()
             return
+        scheme = "wss" if self.request.protocol == "https" else "ws"
         # Write the initial headers before attempting to read the challenge.
         # This is necessary when using proxies (such as HAProxy), which
         # need to see the Upgrade headers before passing through the
@@ -91,9 +92,10 @@ class WebSocketHandler(tornado.web.RequestHandler):
             "Connection: Upgrade\r\n"
             "Server: TornadoServer/%(version)s\r\n"
             "Sec-WebSocket-Origin: %(origin)s\r\n"
-            "Sec-WebSocket-Location: ws://%(host)s%(path)s\r\n\r\n" % (dict(
+            "Sec-WebSocket-Location: %(scheme)s://%(host)s%(path)s\r\n\r\n" % (dict(
                     version=tornado.version,
                     origin=self.request.headers["Origin"],
+                    scheme=scheme,
                     host=self.request.host,
                     path=self.request.path)))
         self.stream.read_bytes(8, self._handle_challenge)