| #!/usr/bin/python |
| import six |
| from mod_pywebsocket import common |
| |
| _GOODBYE_MESSAGE = u'Goodbye' |
| |
| def web_socket_do_extra_handshake(request): |
| # This example handler accepts any request. See origin_check_wsh.py for how |
| # to reject access from untrusted scripts based on origin value. |
| if request.ws_requested_protocols: |
| if "echo" in request.ws_requested_protocols: |
| request.ws_protocol = "echo" |
| |
| |
| def web_socket_transfer_data(request): |
| while True: |
| line = request.ws_stream.receive_message() |
| if line is None: |
| return |
| if isinstance(line, six.text_type): |
| request.ws_stream.send_message(line, binary=False) |
| if line == _GOODBYE_MESSAGE: |
| return |
| else: |
| request.ws_stream.send_message(line, binary=True) |
| |
| def web_socket_passive_closing_handshake(request): |
| # Echo close status code and reason |
| code, reason = request.ws_close_code, request.ws_close_reason |
| |
| # No status received is a reserved pseudo code representing an empty code, |
| # so echo back an empty code in this case. |
| if code == common.STATUS_NO_STATUS_RECEIVED: |
| code = None |
| |
| return code, reason |