def test_decode_frames(): # Single string eq_(proto.decode_frames('abc'), ['abc']) # Multiplie strings eq_(proto.decode_frames(u'\ufffd3\ufffdabc\ufffd3\ufffddef'.encode('utf-8')), ['abc', 'def'])
def test_decode_frames(): # Single string eq_(proto.decode_frames('abc'), ['abc']) # Multiplie strings eq_(proto.decode_frames('\\ufffd3\\ufffdabc\\ufffd3\\ufffddef'), ['abc', 'def'])
def test_decode_frames(): # Single string eq_(proto.decode_frames(u'abc'), [u'abc']) # Multiplie strings eq_(proto.decode_frames(u'\ufffd3\ufffdabc\ufffd3\ufffddef'), [u'abc', u'def'])
def test_decode_frames(): # Single string eq_(proto.decode_frames('abc'), ['abc']) # Multiplie strings eq_( proto.decode_frames( u'\ufffd3\ufffdabc\ufffd3\ufffddef'.encode('utf-8')), ['abc', 'def'])
def post(self, session_id): # Get session self.session = self._get_session(session_id) # Can not send messages to closed session or if preflight() failed if self.session.is_closed or not self.preflight(): raise HTTPError(401) data = self.request.body # IE XDomainRequest support if data.startswith('data='): data = data[5:] # Process packets one by one packets = proto.decode_frames(data) for p in packets: try: self.session.raw_message(p) except Exception: # Close session if something went wrong self.session.close() self.set_header('Content-Type', 'text/plain; charset=UTF-8') #self.write('') self.finish()
def post(self, session_id): """Handle incoming POST request""" # Get session self.session = self._get_session(session_id) # Can not send messages to closed session or if preflight() failed if self.session.is_closed or not self.preflight(): raise HTTPError(401) # Grab body and decode it (socket.io always sends data in utf-8) data = self.request.body.decode('utf-8') # IE XDomainRequest support if data.startswith(u'data='): data = data[5:] # Process packets one by one packets = proto.decode_frames(data) for p in packets: try: self.session.raw_message(p) except Exception: # Close session if something went wrong self.session.close() self.set_header('Content-Type', 'text/plain; charset=UTF-8') self.finish()
def post(self, session_id): # Get session self.session = self._get_session(session_id) # Can not send messages to closed session or if preflight() failed if self.session.is_closed or not self.preflight(): raise HTTPError(401) # Socket.io always send data utf-8 encoded. data = self.request.body # IE XDomainRequest support if not data.startswith('d='): logging.error('Malformed JSONP POST request') raise HTTPError(403) # Grab data data = urllib.unquote(data[2:]).decode('utf-8') # If starts with double quote, it is json encoded (socket.io workaround) if data.startswith(u'"'): data = proto.json_load(data) # Process packets one by one packets = proto.decode_frames(data) for p in packets: try: self.session.raw_message(p) except Exception: # Close session if something went wrong self.session.close() self.set_header('Content-Type', 'text/plain; charset=UTF-8') self.finish()
def post(self, session_id): try: # Stats self.server.stats.connection_opened() # Get session self.session = self._get_session(session_id) # Can not send messages to closed session or if preflight() failed if self.session.is_closed or not self.preflight(): raise HTTPError(401) # Socket.io always send data utf-8 encoded. data = self.request.body # IE XDomainRequest support if not data.startswith('d='): logging.error('Malformed JSONP POST request') raise HTTPError(403) # Grab data data = urllib.unquote_plus(data[2:]).decode('utf-8') # If starts with double quote, it is json encoded (socket.io workaround) if data.startswith(u'"'): data = proto.json_load(data) # Process packets one by one packets = proto.decode_frames(data) # Tracking self.server.stats.on_packet_recv(len(packets)) for p in packets: try: self.session.raw_message(p) except Exception: # Close session if something went wrong self.session.close() self.set_header('Content-Type', 'text/plain; charset=UTF-8') self.finish() finally: self.server.stats.connection_closed()
def post(self, session_id): """Handle incoming POST request""" try: # Stats self.server.stats.connection_opened() # Get session self.session = self._get_session(session_id) # Can not send messages to closed session or if preflight() failed if self.session.is_closed or not self.preflight(): raise HTTPError(401) # Grab body and decode it (socket.io always sends data in utf-8) data = self.request.body.decode('utf-8') # IE XDomainRequest support if data.startswith(u'data='): data = data[5:] # Process packets one by one packets = proto.decode_frames(data) # Tracking self.server.stats.on_packet_recv(len(packets)) for p in packets: try: self.session.raw_message(p) except Exception: # Close session if something went wrong self.session.close() self.set_header('Content-Type', 'text/plain; charset=UTF-8') self.finish() finally: self.server.stats.connection_closed()