'dispatch request to the relevant processor'

def do_dispatch(self, session, request):

    method = request['method']
    params = request.get('params', [])
    suffix = method.split('.')[(-1)]
    if (session is not None):
        if (suffix == 'subscribe'):
            if (not session.subscribe_to_service(method, params)):
                return
    prefix = request['method'].split('.')[0]
    try:
        p = self.processors[prefix]
    except:
        print_log('error:    no    processor    for', prefix)
        return
    p.add_request(session, request)
    if (method in ['server.version']):
        try:
            session.version = params[0]
            session.protocol_version = float(params[1])
        except:
            pass
