36 lines
1.1 KiB
Python
Executable file
36 lines
1.1 KiB
Python
Executable file
#!/usr/bin/python
|
|
|
|
from pywebsocket3 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, str):
|
|
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
|