def post(self, session_id): self.preflight() self.handle_session_cookie() self.disable_cache() session = self._get_session(session_id) if session is None: self.set_status(404) return #data = self.request.body.decode('utf-8') data = self.request.body ctype = self.request.headers.get('Content-Type', '').lower() if ctype == 'application/x-www-form-urlencoded': if not data.startswith('d='): log.msg('jsonp_send: Invalid payload.') self.write("Payload expected.") self.set_status(500) return data = urllib.unquote_plus(data[2:]) if not data: log.msg('jsonp_send: Payload expected.') self.write("Payload expected.") self.set_status(500) return try: messages = proto.json_decode(data) except: # TODO: Proper error handling log.msg('jsonp_send: Invalid json encoding') self.write("Broken JSON encoding.") self.set_status(500) return try: session.messagesReceived(messages) except Exception: log.msg('jsonp_send: messagesReceived() failed') session.close() self.write('Message handler failed.') self.set_status(500) return self.write('ok') self.set_header('Content-Type', 'text/plain; charset=UTF-8') self.set_status(200)
def post(self, session_id): self.preflight() self.handle_session_cookie() self.disable_cache() session = self._get_session(session_id) if session is None: self.set_status(404) return #data = self.request.body.decode('utf-8') data = self.request.body ctype = self.request.headers.get('Content-Type', '').lower() if ctype == 'application/x-www-form-urlencoded': if not data.startswith('d='): log.msg('jsonp_send: Invalid payload.') self.write("Payload expected.") self.set_status(500) return data = urllib.unquote_plus(data[2:]) if not data: log.msg('jsonp_send: Payload expected.') self.write("Payload expected.") self.set_status(500) return try: messages = proto.json_decode(data) except: # TODO: Proper error handling log.msg('jsonp_send: Invalid json encoding') self.write("Broken JSON encoding.") self.set_status(500) return try: session.messagesReceived(messages) except Exception: log.msg('jsonp_send: messagesReceived() failed') session.close() self.write('Message handler failed.') self.set_status(500) return self.write('ok') self.set_header('Content-Type', 'text/plain; charset=UTF-8') self.set_status(200)
def messageReceived(self, message): # Ignore empty messages if not message or not self.session: return try: msg = proto.json_decode(message) if isinstance(msg, list): self.session.messagesReceived(msg) else: self.session.messagesReceived((msg,)) except Exception as e: log.msg('WebSocketTransport.messageReceived: %r' % e) # Close running connection self.transport.loseConnection()
def messageReceived(self, message): # Ignore empty messages if not message or not self.session: return try: msg = proto.json_decode(message) if isinstance(msg, list): self.session.messagesReceived(msg) else: self.session.messagesReceived((msg, )) except Exception as e: log.msg('WebSocketTransport.messageReceived: %r' % e) # Close running connection self.transport.loseConnection()
def post(self, session_id): self.preflight() self.handle_session_cookie() self.disable_cache() session = self._get_session(session_id) if session is None: self.set_status(404) return #data = self.request.body.decode('utf-8') data = self.request.body if not data: self.write("Payload expected.") self.set_status(500) return try: messages = proto.json_decode(data) except: # TODO: Proper error handling self.write("Broken JSON encoding.") self.set_status(500) return try: session.messagesReceived(messages) except Exception: log.msg('XHR incoming') session.close() self.set_status(500) return self.set_status(204) self.set_header('Content-Type', 'text/plain; charset=UTF-8')