Я создал веб-приложение, используя Python Bottle framework. Я использовал плагин bottle-websocket
для связи WebSocket с клиентами. Вот часть моего кода.
from bottle import Bottle, request, run
from bottle.ext.websocket import GeventWebSocketServer, websocket
class MyHandler():
...
class MyServer(Bottle):
...
def _serve_websocket(self, ws):
handler = MyHandler()
some_data = request.cookies.get('some_key') # READ SOME DATA FROM HTTP REQUEST
while True:
msg = ws.receive()
handler.do_sth_on(msg, some_data) # USE THE DATA FROM HTTP REQUEST
ws.send(msg)
del(handler)
if __name__ == '__main__':
run(app=MyServer(), server=GeventWebSocketServer, host=HOST, port=PORT)
Как показывает код, мне нужно прочитать некоторые данные из браузера (файлы cookie или что-либо в заголовках HTTP-запроса) и использовать их для обработки сообщений WebSocket.
Как я могу убедиться, что запрос поступил из того же сеанса браузера, что и сеанс подключения WebSocket?
ПРИМЕЧАНИЕ
Как и я Я не очень разбираюсь в HTTP и WebSocket, я бы хотел здесь подробно рассказать о них.