echo_wsh.py (1177B)
1 #!/usr/bin/python 2 3 from pywebsocket3 import common 4 5 _GOODBYE_MESSAGE = u'Goodbye' 6 7 def web_socket_do_extra_handshake(request): 8 # This example handler accepts any request. See origin_check_wsh.py for how 9 # to reject access from untrusted scripts based on origin value. 10 if request.ws_requested_protocols: 11 if "echo" in request.ws_requested_protocols: 12 request.ws_protocol = "echo" 13 14 15 def web_socket_transfer_data(request): 16 while True: 17 line = request.ws_stream.receive_message() 18 if line is None: 19 return 20 if isinstance(line, str): 21 request.ws_stream.send_message(line, binary=False) 22 if line == _GOODBYE_MESSAGE: 23 return 24 else: 25 request.ws_stream.send_message(line, binary=True) 26 27 def web_socket_passive_closing_handshake(request): 28 # Echo close status code and reason 29 code, reason = request.ws_close_code, request.ws_close_reason 30 31 # No status received is a reserved pseudo code representing an empty code, 32 # so echo back an empty code in this case. 33 if code == common.STATUS_NO_STATUS_RECEIVED: 34 code = None 35 36 return code, reason