2013-08-12 2 views
6

Доброе утро,Использование КОЛБУ сессии в GEvent Socket-IO

У меня были некоторые проблемы, и я надеюсь, кто-нибудь сможет помочь мне немного здесь. То, что я пытаюсь сделать, - это доступ к сеансу фляк в пространстве имен Gevent Socket-IO.

Я попытался использовать стакан как клиент среднего уровня, и я все еще не могу получить доступ к &, обновляя информацию о сеансе из пространства имен сокета-иона.

Я довольно новичок в этом, поэтому любая помощь будет принята с благодарностью.

ответ

3

С сеансом флэшки по умолчанию представляется возможным предоставить доступ к данным сеанса (доступ только для чтения) к моменту инициализации пространства имен.

session_dict=dict(session) 
socketio_manage(request.environ, {'/news': NewsNamespace}, request=session_dict) 

session_dict затем доступен в качестве self.request в пространстве имен. Это взлом, но сеансы Flask/werkzeug, похоже, не работают вне контекста запроса.

Я установил идентификатор сеанса (случайно генерируемый uuid) в сеансе фляшки. Затем оба представления Flask и пространство имен знают идентификатор сеанса, и оба могут считывать/записывать данные в сеансе на стороне сервера в Redis или в каком-либо другом хранилище данных с идентификатором сеанса в качестве ключа.

Это просто решение, которое я использую для обмена сеансами между Flask и gevent-socketio; Я не пробовал Beaker и не знаю, какие конкретные проблемы вы использовали в этом, или если есть лучшее решение.

Смежные вопросы