import struct import time from mod_pywebsocket import common def web_socket_do_extra_handshake(request): pass def web_socket_transfer_data(request): length = 0x8000000000000000 # pywebsocket refuses to send a frame with too long payload. # Thus, we need to build a frame manually. header = chr(0x80 | common.OPCODE_TEXT) # 0x80 is for "fin" bit. header += chr(127) header += struct.pack('!Q', length) request.connection.write(header) # Send data indefinitely to simulate a real (broken) server sending a big frame. # A client should ignore these bytes and abort the connection. while True: request.connection.write('X' * 4096) time.sleep(1)