From a0dbf69fec47db0bfdca6585267eed21bfc2da91 Mon Sep 17 00:00:00 2001 From: Miguel Grinberg Date: Mon, 29 Jun 2015 00:20:32 -0700 Subject: [PATCH] allow connect event handler to send data to client --- engineio/server.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/engineio/server.py b/engineio/server.py index 42af89ab..c4b352d0 100755 --- a/engineio/server.py +++ b/engineio/server.py @@ -207,19 +207,22 @@ def handle_request(self, environ, start_response): def _handle_connect(self, environ): """Handle a client connection request.""" sid = self.generate_id() - if self._trigger_event('connect', sid, environ) is False: - self.logger.warning('Application rejected connection') - return self._unauthorized() - self.clients[sid] = socket.Socket(self, sid) + s = socket.Socket(self, sid) + self.clients[sid] = s pkt = packet.Packet( packet.OPEN, {'sid': sid, 'upgrades': self._upgrades(sid), 'pingTimeout': int(self.ping_timeout * 1000), 'pingInterval': int(self.ping_interval * 1000)}) + s.send(pkt) + if self._trigger_event('connect', sid, environ) is False: + self.logger.warning('Application rejected connection') + del self.clients[sid] + return self._unauthorized() headers = None if self.cookie: headers = [('Set-Cookie', self.cookie + '=' + sid)] - return self._ok([pkt], headers=headers) + return self._ok(s.poll(), headers=headers) def _upgrades(self, sid): """Return the list of possible upgrades for a client connection."""