chromium/net/data/websocket/echo-request-headers_wsh.py

# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# This handler serializes the received headers into a JSON string and sends it
# back to the client. In |headers_in|, the keys are converted to lower-case,
# while the original case is retained for the values.

import json
from mod_pywebsocket import msgutil


def web_socket_do_extra_handshake(request):
  pass


def web_socket_transfer_data(request):
  # Since python 3 does not lowercase the dictionary key, manually lower all
  # keys to maintain python 2/3 compatibility
  lowered_dict = {
      header.lower(): value for header, value in request.headers_in.items()
  }
  msgutil.send_message(request, json.dumps(lowered_dict))
  # Wait for closing handshake
  request.ws_stream.receive_message()