Skip to content

Commit b6df63d

Browse files
delay start of message queue listener thread until first request comes
1 parent 0173306 commit b6df63d

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

socketio/server.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ def __init__(self, client_manager=None, logger=False, binary=False,
9696

9797
if client_manager is None:
9898
client_manager = base_manager.BaseManager()
99-
client_manager.initialize(self)
10099
self.manager = client_manager
100+
self.manager_initialized = False
101101

102102
def on(self, event, handler=None, namespace=None):
103103
"""Register an event handler.
@@ -300,6 +300,9 @@ def handle_request(self, environ, start_response):
300300
This function returns the HTTP response body to deliver to the client
301301
as a byte sequence.
302302
"""
303+
if not self.manager_initialized:
304+
self.manager_initialized = True
305+
self.manager.initialize(self)
303306
return self.eio.handle_request(environ, start_response)
304307

305308
def start_background_task(self, target, *args, **kwargs):

tests/test_server.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,13 @@ def tearDown(self):
2121
def test_create(self, eio):
2222
mgr = mock.MagicMock()
2323
s = server.Server(client_manager=mgr, binary=True, foo='bar')
24+
s.handle_request({}, None)
25+
s.handle_request({}, None)
2426
eio.assert_called_once_with(**{'foo': 'bar'})
2527
self.assertEqual(s.manager, mgr)
2628
self.assertEqual(s.eio.on.call_count, 3)
2729
self.assertEqual(s.binary, True)
30+
self.assertEqual(mgr.initialize.call_count, 1)
2831

2932
def test_on_event(self, eio):
3033
s = server.Server()
@@ -285,6 +288,7 @@ def test_handle_event_binary(self, eio):
285288

286289
def test_handle_event_binary_ack(self, eio):
287290
s = server.Server()
291+
s.manager.initialize(s)
288292
s._handle_eio_message('123', '61-1["my message","a",'
289293
'{"_placeholder":true,"num":0}]')
290294
self.assertEqual(s._attachment_count, 1)

0 commit comments

Comments
 (0)