1 # Copyright (c) 2012 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 import struct 6 7 from mod_pywebsocket import handshake 8 from mod_pywebsocket import stream 9 10 11 def web_socket_do_extra_handshake(_request): 12 pass 13 14 15 def web_socket_transfer_data(request): 16 line = request.ws_stream.receive_message() 17 if line is None: 18 return 19 if isinstance(line, unicode): 20 request.ws_stream.send_message(line, binary=False) 21 else: 22 request.ws_stream.send_message(line, binary=True) 23 24 25 def web_socket_passive_closing_handshake(request): 26 code = struct.pack('!H', 1000) 27 packet = stream.create_close_frame(code + 'split test'.encode('utf-8')) 28 request.connection.write(packet[:1]) 29 request.connection.write(packet[1:]) 30 raise handshake.AbortedByUserException('Abort the connection') 31