Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
  • Loading branch information
Pithikos committed Nov 15, 2021
2 parents 4321c82 + c7b1467 commit df1750b
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 4 deletions.
3 changes: 3 additions & 0 deletions releases.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@
0.6.0
- Change order of params 'host' and 'port'
- Add host attribute to server

0.6.1
- Sending data is now thread-safe
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from distutils.command.install import install


VERSION = '0.6.0'
VERSION = '0.6.1'


def get_tag_version():
Expand Down
11 changes: 8 additions & 3 deletions websocket_server/websocket_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,8 @@ class WebSocketHandler(StreamRequestHandler):

def __init__(self, socket, addr, server):
self.server = server
assert not hasattr(self, "_send_lock"), "_send_lock already exists"
self._send_lock = threading.Lock()
if server.key and server.cert:
try:
socket = ssl.wrap_socket(socket, server_side=True, certfile=server.cert, keyfile=server.key)
Expand Down Expand Up @@ -321,7 +323,8 @@ def send_close(self, status=CLOSE_STATUS_NORMAL, reason=DEFAULT_CLOSE_REASON):
# Send CLOSE with status & reason
header.append(FIN | OPCODE_CLOSE_CONN)
header.append(payload_length)
self.request.send(header + payload)
with self._send_lock:
self.request.send(header + payload)

def send_text(self, message, opcode=OPCODE_TEXT):
"""
Expand Down Expand Up @@ -364,7 +367,8 @@ def send_text(self, message, opcode=OPCODE_TEXT):
raise Exception("Message is too big. Consider breaking it into chunks.")
return

self.request.send(header + payload)
with self._send_lock:
self.request.send(header + payload)

def read_http_headers(self):
headers = {}
Expand Down Expand Up @@ -397,7 +401,8 @@ def handshake(self):
return

response = self.make_handshake_response(key)
self.handshake_done = self.request.send(response.encode())
with self._send_lock:
self.handshake_done = self.request.send(response.encode())
self.valid_client = True
self.server._new_client_(self)

Expand Down

0 comments on commit df1750b

Please sign in to comment.