29 lines
713 B
Python
29 lines
713 B
Python
# Copyright 2012 The Chromium Authors
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import struct
|
|
|
|
from mod_pywebsocket import stream
|
|
|
|
|
|
def web_socket_do_extra_handshake(_request):
|
|
pass
|
|
|
|
|
|
def web_socket_transfer_data(request):
|
|
line = request.ws_stream.receive_message()
|
|
if line is None:
|
|
return
|
|
if line == '-':
|
|
data = b''
|
|
elif line == '--':
|
|
data = b'X'
|
|
else:
|
|
code, reason = line.split(' ', 1)
|
|
data = struct.pack('!H', int(code)) + reason.encode('utf-8')
|
|
request.connection.write(stream.create_close_frame(data))
|
|
request.server_terminated = True
|
|
# Wait for Close frame from client.
|
|
request.ws_stream.receive_message()
|