echo-request-headers_wsh.py 870 B

12345678910111213141516171819202122232425
  1. # Copyright (c) 2014 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. #
  5. # This handler serializes the received headers into a JSON string and sends it
  6. # back to the client. In |headers_in|, the keys are converted to lower-case,
  7. # while the original case is retained for the values.
  8. import json
  9. from mod_pywebsocket import msgutil
  10. def web_socket_do_extra_handshake(request):
  11. pass
  12. def web_socket_transfer_data(request):
  13. # Since python 3 does not lowercase the dictionary key, manually lower all
  14. # keys to maintain python 2/3 compatibility
  15. lowered_dict = {
  16. header.lower(): value for header, value in request.headers_in.items()
  17. }
  18. msgutil.send_message(request, json.dumps(lowered_dict))
  19. # Wait for closing handshake
  20. request.ws_stream.receive_message()