diff --git a/flask_sockets.py b/flask_sockets.py index de48e3b..aa51fa9 100644 --- a/flask_sockets.py +++ b/flask_sockets.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- from werkzeug.routing import Map, Rule from werkzeug.exceptions import NotFound +from werkzeug.http import parse_cookie +from flask import request def log_request(self): log = self.server.log @@ -37,9 +39,13 @@ class SocketMiddleware(object): try: handler, values = adapter.match() environment = environ['wsgi.websocket'] + cookie = parse_cookie(environ['HTTP_COOKIE']) with self.app.app_context(): with self.app.request_context(environ): + # add cookie to the request to have correct session handling + request.cookie = cookie + handler(environment, **values) return [] except (NotFound, KeyError):