Example #1
0
    def dispatch(self, frame):
        '''
    Override the default dispatch since we don't need the rest of the stack.
    '''
        if frame.type() == HeartbeatFrame.type():
            self.send_heartbeat()

        elif frame.type() == MethodFrame.type():
            if frame.class_id == 10:
                cb = self._method_map.get(frame.method_id)
                if cb:
                    cb(frame)
                else:
                    raise Channel.InvalidMethod(
                        "unsupported method %d on channel %d", frame.method_id,
                        self.channel_id)
            else:
                raise Channel.InvalidClass(
                    "class %d is not supported on channel %d", frame.class_id,
                    self.channel_id)

        else:
            raise Frame.InvalidFrameType(
                "frame type %d is not supported on channel %d", frame.type(),
                self.channel_id)