file_websocket_permessage_deflate_params_wsh.py (863B)
1 from mod_pywebsocket import common, msgutil 2 3 4 def web_socket_do_extra_handshake(request): 5 deflate_found = False 6 7 if request.ws_extension_processors is not None: 8 for extension_processor in request.ws_extension_processors: 9 if extension_processor.name() == "deflate": 10 extension_processor.set_client_no_context_takeover(True) 11 deflate_found = True 12 13 if deflate_found is False: 14 raise ValueError("deflate extension processor not found") 15 16 17 def web_socket_transfer_data(request): 18 while True: 19 rcvd = msgutil.receive_message(request) 20 opcode = request.ws_stream.get_last_received_opcode() 21 if opcode == common.OPCODE_BINARY: 22 msgutil.send_message(request, rcvd, binary=True) 23 elif opcode == common.OPCODE_TEXT: 24 msgutil.send_message(request, rcvd)