summaryrefslogtreecommitdiff
path: root/dom/base/test/file_websocket_permessage_deflate_wsh.py
blob: 65752dee115b7142818132094bbfa233fecd0220 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from mod_pywebsocket import msgutil
from mod_pywebsocket import common

def web_socket_do_extra_handshake(request):
  pmce_offered = False

  if request.ws_requested_extensions is not None:
    for extension_request in request.ws_requested_extensions:
      if extension_request.name() == "permessage-deflate":
        pmce_offered = True

  if pmce_offered is False:
    raise ValueError('permessage-deflate not offered')

def web_socket_transfer_data(request):
  while True:
    rcvd = msgutil.receive_message(request)
    opcode = request.ws_stream.get_last_received_opcode()
    if (opcode == common.OPCODE_BINARY):
      msgutil.send_message(request, rcvd, binary=True)
    elif (opcode == common.OPCODE_TEXT):
      msgutil.send_message(request, rcvd)